home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Software Vault: The Diamond Collection
/
The Diamond Collection (Software Vault)(Digital Impact).ISO
/
cdr27
/
fwkcs200.zip
/
README.TXT
< prev
next >
Wrap
Text File
|
1995-01-16
|
166KB
|
3,053 lines
FWKCS(TM) Contents_Signature System, Version 2.00. 1995 Jan 16.
(C)Copyright Frederick W. Kantor 1989, 1995. All rights reserved.
Important: Your use of this software is at solely your own risk: please have
proper backups of your files.
This README.TXT file contains these sections:
Summary
Checklist for Installation, Help, and Routine Maintenance
Distribution
Summary:
~~~~~~~~
This zipfile, FWKCS200.ZIP, contains the FWKCS(TM) Contents_Signature
System, Version 2.00, including assembly_language programs,
documentation, user interface programs, other supporting programs,
automated setup procedures, etc. All functions are enabled, to permit
testing.
Anti-piracy resource material is available separately in the current
release of FWKCXnnn.ZIP; that series started with FWKCX001.ZIP (note:
that series number is not tied to the FWKCS version number; for where to
get the most recent release of FWKCXnnn, see "Note 2:" near the end of
this file). Executable code to use that resource data is provided in
this package, FWKCS200.ZIP.
This package is for use with DOS 3.30 or later, or in a suitable DOS
session under a multitasking system (including IBM OS/2 2.0 or later);
preferably at least 336 KB free memory (1 KB = 1024 bytes) to call
SCAN 2.x.x (using the FWKCS swap option to free space for SCAN).
When operating in a client / host configuration, the client,
FWKCSC.COM, can fit into about 32 KB of memory.
You may test FWKCS(TM) at no fee before registering it; if for use in
a public, commercial, school, institutional, or governmental environment,
then this no_fee test period shall not be more than 45 days.
An unregistered copy of FWKCS shows a note saying how many days have
elapsed since use began, counting the first day as day 0. After day 45,
a delay of about one second per additional day is added (for example, on
day 55, it pauses for approximately 10 seconds). Suggested test time is
up to 30 days, to allow time for your registration to normally reach you
by mail before those delays start.
To run an unregistered copy of FWKCS, you need to keep a copy of the
registration form REGISTER.FRM available in the same directory with
FWKCS.EXE (you can put that directory on your PATH and then call FWKCS
from anywhere on your system).
Also, FWKCS has a special option, FWKCS /here , which tells FWKCS to
copy FWKCS.EXE to wherever you are when you give that command. For
example, the /here option is convenient when a .BAT program needs a
temporary copy of FWKCS.EXE so that it can change the "macro" settings
for local use. However, /here does not fetch a copy of REGISTER.FRM.
Registration for personal use is only $47.00, or for a bulletin board
of 1 or 2 nodes is only $80.00, plus any applicable taxes (see
REGISTER.FRM). In the case of use on a bulletin board system, FWKCS
often pays for itself completely in a matter of hours, just by the space
it saves by finding duplicate files already on the board.
The FWKCS(TM) Contents_Signature System provides a powerful platform
supporting contents_signature functions. Among other applications,
FWKCS is used on giant bulletin boards for protecting against duplicate
files and against accidentally uploaded commercial files. It can
process (including controlling the virus testing of) an uploaded zipfile
containing a full DOS tree of zipped paths and subdirectories, and up to
16383 entries, while preserving the paths and the Authenticity
Verification stamp. And its remote Lookup features help users find
matching files on giant bulletin boards, get missing parts of packages,
and avoid uploading duplicate material.
In experimental testing, the FWKCS system has been seen to provide
statistical resolution typically better than one part in ten trillion,
well over a thousand times as good as the best that is mathematically
possible for the 32_bit CRC to do.
The affordable prices, the automated installation procedures ranging
from simple to complex, and the extensive on_line support provided by
FWKCS on your computer, bring the FWKCS system within reach of almost
anyone with a computer that can run DOS or a DOS session.
The kernel for the FWKCS system is a 90640_byte self_modifying
program written entirely in assembly language. It uses a 3072_byte
internal command line, supports 26 73_byte dynamically changeable
"macros", can read multiple configuration files into its internal
command line and expand any macros which they contain, and can operate
on multiple processors so as to dynamically allocate work among hosts
serving clients on a network. FWKCS.EXE, running in host mode, can
accept work posted to its queue from threads or processors running
under an operating system other than DOS, provided that any files
involved are accessible from DOS. ("threads" is used here generically
to refer to execution of a set of steps in a program, including also
"session" under a preemptive multitasking system and "task" under a
non_preemptive multitasking system)
For a system with a very large data base, FWKCS supports the use of
an index system with increased "cell" count. Depending on the
computer operating system used, this option supports improved access
to a data base of up to slightly less than 4 Gigabytes (DOS), or
slightly less than 2 Gigabytes (OS/2), respectively (e.g., more than
40,000,000 entries of the usual ca 50_byte length), and may improve
performance for systems with as little as two million entries in the
data base. Note that, if desired, the "j" or "l" (lower case L) flag
can be used in column 17 of CSLIST.SRT and CSLIST1.SRT, to enable
further bit comparison on an extended (if "j", contiguous) string from
column 18 up to column 509, inclusive -- if coded in hexadecimal, up
to an additional 1968 bits. The "j" flag allows additional material
to be placed following one or more blank spaces after the contiguous
identification string. In this way, many orders of magnitude of
additional statistical resolution can be provided for the basic /f
(find if match) and /g (get matching entries) functions.
For details, see FWKCS200.REF (e.g., FWKCS /** ), and search for
"granularity", "to further enhance statistical resolution", and
"Special Column 17 Flags". (e.g., in step 22 in the Checklist,
below)
Many powerful internal functions are brought out for other uses,
including the 520_key sorting function able to handle the maximum file
size which the operating system can handle or 2^32-1, whichever is less
(e.g., for DOS, slightly less than 4 Gigabytes). FWKCS can merge two
sorted files in place, find the difference between sorted files,
support automatic text interpretation, do very fast contents_signature
matching, provide a subset of the text find functions with enhanced
range and speed, and perform many other functions which do not appear
to be supported by various DOS operating systems. For a detailed list
of functions supported, see FWKCS200.REF (step 22, below).
For the FWKCS application of automatically processing files uploaded
to a bulletin board when they arrive, three configurations are used:
1. FWKCS can process files, working directly (default configuration).
2. The split_test configuration allows the fast part of the testing
(including checking for duplicate files, known ads, known trojans, and
known commercial files) to be done while the user waits a few seconds,
with the slower file_unzipping and further virus testing done while the
user goes on to other things. (For example, Channel 1 (ca 135 nodes,
ca 35 Gigabytes) runs FWKCS in the split_test configuration.)
3. The client / host configuration allows work to be automatically
transferred to one or more other processors. This can be especially
useful when multiple nodes are running on a single CPU, with the
CPU_intensive work of evaluating uploads done on another; or when a fast
processor on a network is used to upgrade the processing of uploaded
files on a large BBS without having to replace any of the older CPUs.
For example, The Invention Factory (ca 50 nodes, ca 14.6 Gigabytes)
has been running FWKCS in the client / host configuration. Until April
of 1994, 43 of the nodes were running Clark Development Company's
PCBoard 15.1 on 8088 slave cards, with FWKCS running in host mode on a
486 on the network (The Invention Factory now uses 80386 CPU's or higher
on its 50 nodes, with FWKCS client / host configuration). When PCBoard
shells out to test an upload, it does not give up any memory -- it calls
PCBTEST.BAT which calls the FWKCS client program FWKCSC.COM, which can
run in about 32 KB of RAM. The spectrum of activities included, and
includes, among others,
* virus testing the outer package (McAfee's SCAN),
* preliminary test of file integrity (using internal FWKCS code),
* replacing the zipfile comment (Phil Katz's PKZIP),
* unzipping the zipfile and testing file integrity (PKUNZIP),
* virus testing the unzipped files,
* checking the AV stamp to see if it is recognized as an abused AV,
* comparing all the files with all the other corresponding files on
the system, regardless of filename, including those in other
zipfiles, and those which have been retired from use,
* setting aside uploads which do not have sufficient novelty,
* testing the files inside a zipfile for age,
* checking for and deleting commercial files recognized on the
basis of their contents_signatures, regardless of filename,
* updating the data base to be able to recognize the files in the new
upload if they are seen again, even if their names are changed,
* removing non_AV files found in AV zipfiles,
* removing recognized ads not protected by AV stamp,
* blocking trojan files recognized by contents_signature,
* checking any internal zipfile description FILE_ID.DIZ, DESC.SDI,
and/or VENDINFO.DIZ to see if it is recognized as unwanted material,
* using internal upload description FILE_ID.DIZ, DESC.SDI, or
VENDINFO.DIZ
* modifying the upload description to include a report of filecount,
dates of earliest and latest, and how many of the files are new,
* adding zipfile contents signature line to the upload description,
* moving rejected files to separate subdirectories for easy
inspection (except for deleting commercial files received),
* preparing a report to send to the user,
* etc...
In the case where the node which received the upload used an 8088 slave
card, a typical time for evaluating and accepting an uploaded zipfile
about half a Megabyte long was less than 20 seconds.
Other supported activities include trimming the artificial tail of
extra characters from GIF files, processing plain files, partial or
fully automatic interpretation of text descriptions of files, etc. For
more, see FWKCS200.REF (step 22, below).
--------------------------------------------------------------------------
Checklist for Installation, Help, and Routine Maintenance
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
This checklist provides steps for installing, or replacing, the
FWKCS(TM) Contents_Signature System;
It includes a "guided tour" of many help options; and
It serves as a checklist for routine maintenance of the installed system.
You might find it convenient to print out this checklist for your use in
setting up the system, and for reference in doing maintenance.
Once you get started, take your time to read the help screens presented
by the programs as you work with them. The .BAT program help_screens put
information where you can use it while you key in your input. If the
installation programs report a problem, stop, correct the problem, and
begin again.
For full installation and full use of all FWKCS options, you need on your
PATH the programs listed in checklist steps 1-4, below.
If you will only be using Lookup and Rcrosref, and do not wish to set up
the whole system, you can run GETLOOK in step 14. To support that, you
will need PKZIP/PKUNZIP as in step 1, below, and you may want LIST (step
2) in case you call FWKCS /** for extensive help (discussed below in step
22).
If you are running a large system with complex use of drives and
directories, the recommended method of installation is to use QIKSTART
to install the FWKCS system, and then go to your \CS directory and use
S_REVCSL.BAT to build the data base.
(checklist entries 1-3 are shareware; if you are
missing any of them, see Note 2, near the end of
this file, for no_fee downloads)
[ ] 1. Phil Katz's PKUNZIP(R) and PKZIP(R), Version 2.04g or later.
[ ] 2. Vernon Buerg's LIST program, a recent version.
(if only using GETLOOK, you can go to step 9)
[ ] 3. McAfee's SCAN, preferably the most recent version of series 1.xx
or 2.x.x.
(if you find that you need more free memory, FWKCS can give up all
but 8064 bytes of RAM when calling SCAN, by swapping most of itself
out of memory; this is discussed in step 26)
[ ] 4. DOS commands and programs:
[ ] ATTRIB
[ ] CHKDSK
[ ] DEBUG (used in FWKCTEST.BAT and FWKCHTST.BAT)
[ ] MORE
[ ] a version of QBASIC, GWBASIC, BASICA, or BASIC, suitable for
use on your system.
[ ] 5. (optional) If your operating system allows this function,
preferably include a file defragmentation program, for example,
Peter Norton's Speed Disk.
[ ] 6. If FWKCS has not been told specific paths for finding executable
files (this is discussed in step 18), it checks its current
directory for executable files before searching for them on the
PATH. One potential source of trouble, is if APPEND is used with
a directory which contains an executable file FWKCS calls.
APPEND makes those files seem to be present in the current
directory, but they are not executable that way. To avoid such
problems, make sure that PKZIP, PKUNZIP, LIST, and SCAN are not
in any directory which is APPENDed.
[ ] 7. The data base uses (or will use, once it's installed) CSLIST.SRT,
CSLIST.NDX, CSLIST1.SRT, and CSLIST1.NDX, located in the \CS
directory. CSLIST.SRT is the main data file. CSLIST1.SRT is used
for rapid updating when accessioning new material ("accessioning"
means recording them in the data base for future recognition,
i.e., generating the contents_signature ("cs") for each file and
for files directly present in zipfiles, sorting the cs's if there
is more than one (as often found with files in a zipfile), adding
their cs's to the data base, and refreshing the rapid update
index CSLIST1.NDX).
Note: If your collection is sufficiently large, or if your
system uses slow network communications (such as "speech
quality" telephone lines), you may wish to set the index
"cell size" , after you have installed this version of
FWKCS. (see WHATSNEW.200; and when you do FWKCS /** in
step 22, below, search for "granularity" (without the
quotes))
A new automatic exclusion list, X_ADD.LST, can be automatically
incorporated into the data base. When using X_ADD.LST, its length
needs to be considered in calculating the free workspace to
allow.
(Following are some formulas for estimating the amount of space
to allow, writing len(x) for "length of file x", and * for
multiplication.)
If you do not have a new X_ADD.LST, then, to run REPLACE or
QIKSTART, allow 5 Megabytes free workspace (used temporarily
while setting up; installed size is discussed below).
If you do have a new X_ADD.LST, then
to run QIKSTART, allow 5 Meg + 5*len(X_ADD.LST);
to run REPLACE, allow
5 Meg + len(CSLIST.SRT) + 5*len(X_ADD.LST) + 3*len(CSLIST1.SRT),
to permit copying X_ADD.LST and concurrent revision of an active
FWKCS system (i.e., while the system is up and running; do not do
a system revision at the same time as you are running REPLACE).
If you run QIKSTART, which does not search your system nor build
a big data base, the total installed lengths of the FWKCS
system's files is less than 2 Meg, in a total of 159 files and
directories (not counting any special custom messages you may
wish to add). If you are incorporating a new X_ADD.LST, add
len(X_ADD.LST). (The total amount of disk space committed to
storing those files and directories will depend on how
efficiently your system uses space on the disk: for example,
storing the files using an 8192 byte block size on the disk ties
up more space than if the system uses a 512 byte block size.)
If you run INSTALL (in step 14) and do the full installation
procedure, FWKCS may process a large amount of material, and need
more temporary free space to work in. Counting temporary files,
etc., used in sorting and in preparing the main data base,
recommended workspace is 5 Megabytes + 8% of the total of all the
filelengths on your system + 5*len(X_ADD.LST); the workspace must
be located on the drive which will hold the \CS
(Contents_Signature) directory.
If you use option 5 on the "Menu for Installation" screen
(reached if you start with INSTALL), you can specify which groups
of files to include, in which case 8% of the total of those
filelengths would be used in the above estimate.
After the installation is finished, the amount of space which
continues to be used is considerably less; it's usually the
sorting process that needs the most space.
One contents_signature is made for each file (including files
directly inside zipfiles), and one for each zipfile. Each
contents_signature with related additional information takes up
roughly 50 bytes in the data base; it can be more, if you use
long paths, or if there is a lot of zipped path information. If
your system specializes in ca 500K GIF files, then the CSLIST.SRT
data file containing their signatures, etc., may be only about
0.01% as long as the total filelengths. But if your system
specializes in haiku, the database could be about half as long as
the total of all the haiku filelengths.
A typical size for the data base on large public bulletin board
systems has been somewhat less than 0.5% of the total of the
filelengths on the system. The recommended working space allows a
safety factor over this.
If you estimate the space needed, allow a temporary working space
of at least (5 Meg) + 4*(the estimated final data base size) +
5*len(X_ADD.LST).
For example, allow at least (in bytes)
5242880 + 200*(filecount+zipfilecount) + 5*len(X_ADD.LST).
However, filecount includes files inside zipfiles, and often is
not accurately known until after FWKCS is installed; that's why
a simple estimate based on total filelengths is provided above.
How much free workspace you will actually need also depends in
part on how your operating system handles the deletion of
intermediate files.
[ ] 8. A Contents_Signature Activity place is created during automatic
installation, as the \CSA directory. Under it are placed 21
subdirectories. When used for screening incoming files on a
bulletin board system, FWKCS puts various kinds of rejected files
into various of these different subdirectories, according to why
the file was rejected.
For speed of operation, it is much more efficient if the \CSA is
on the same drive that initially holds the uploaded files: in
that case, a large rejected file can be quickly moved to its
target subdirectory just by moving the relatively small amount of
information that points to the file, without having to copy the
file itself.
[ ] 9. Make an empty directory (to make it easy to clean up later).
[ ] 10. Copy FWKCS200.ZIP into that empty directory.
[ ] 11. Make that your current directory.
[ ] 12. Do PKUNZIP FWKCS200.ZIP <enter> (don't delete FWKCS200.ZIP yet).
(if you will use only GETLOOK, you can go to GETLOOK in step 14)
[ ] 13. If you have a new copy of an automatic exclusion list, X_ADD.LST,
copy it into this directory before doing step 14.
[ ] 14. Read this part carefully, select which procedure you will use, and
make any required changes in your system configuration;
If you have already registered FWKCS, copy the registration
key into the directory as in step 12 and name it REGISTER.KEY
(it will ask, if you have not done that, and give you an
opportunity to stop, get the key, and start the program again);
Then, in the same directory as in step 12, run one of these
setup programs, and follow the instructions on the screen.
("<enter>" means "press the enter key")
The programs discussed for this step are INSTALL.BAT,
REPLACE.BAT, QIKSTART.BAT, and GETLOOK.BAT. Because INSTALL
has several major options, it is discussed in more detail
directly below.
[ ] INSTALL - versatile, for new installation, can search a huge file
collection.
Before doing a full installation of FWKCS for the first
time:
[ ] make sure that there is enough free space on the
drive where you will put the \CS (Contents_Signature)
directory. (see the discussion in step 7, above).
[ ] to prevent accidental double_counting of files, go
over your system carefully and either (easy way) make
sure that there is no case in which the same physical
file is reached by two different paths (check all
your ASSIGN and SUBST commands), or (and this may be
more complicated) make sure that you know of all such
cases: if you need to use duplicate paths, see Note 1,
below;
then, do:
[ ] INSTALL <enter>
and then follow the instructions on the screen.
Note 1: if you need to have extra path(s) to the
same file(s), then later,
[ ] when you get to the screen which says "Menu
for Installation" in the upper left corner,
use option 5;
[ ] when asked, "Shall I turn S_SETUP.BAT over
to you?", answer Y (for YES);
[ ] when S_SETUP is turned over to you for use,
study the screen carefully, and leave out
(or exclude) the extra path(s) when you
specify what to include in (or exclude from)
the search.
INSTALL will do preliminary setup steps, bring out the GO
installation program, and then start GO.
GO is an interactive program. Take your time. Read each
screen slowly and carefully. Here are copies of the
screens which GO presents, together with explanatory
material:
[ ] First screen of GO. Follow the instructions for making a printed record.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
During installation, status reports and advice about on_line help are
displayed on the console screen. For your convenience, and for use in
case of trouble, you may wish to make a printed record.
To make a printed record, first turn your printer on, then
toggle Ctrl+P or Ctrl+Shft+PrtSc to send screen output to your printer,
and then
Press any key when ready... (this line can vary on different systems)
FWKCS(TM) Contents_Signature System, Version 2.00.
Printed record of GO installation procedure:
-------------------------------------------------------------------------
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[ ] Second screen of GO. Press F to go forward to next screen.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Part of FWKCS(TM) Contents_Signature System, Version 2.00.
(C)Copyright Frederick W. Kantor 1989, 1995. All rights reserved.
Your use of the FWKCS(TM) Contents_Signature System is at solely your own
risk. For safety, please have proper backups of your files.
GO.BAT to install the FWKCS(TM) Contents_Signature System, Version 2.00.
Note: for a first_time installation, this procedure normally takes time to do
automatic searching. For example, for a 32 Megabyte hard disk on an IBM PC,
or for a 1.2 Gigabyte hard disk with an Intel 486/33, storing mostly
zipfiles, the total installation time is typically less than half an hour.
GO.BAT is for use when called by INSTALL.BAT, or when called directly in
the same directory with FWKCS200.EXE, or FWKCS.200 and FWKCS_TM.200.
Usage, direct mode: GO "<enter>"
To go forward (next screen), press F.
To abort (quit), press A.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[ ] Third screen of GO. Press F to go forward to next screen.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
FWKCS(TM) Version 2.00, for use under DOS 3.30 or later, or in a suitable DOS
session under a multitasking system (including IBM's OS/2 2.0 or later).
Minimum system memory: FWKCS requires 162992 bytes of memory. Using its swap
option, FWKCS has run SCAN 2.1.4 in 412208 bytes total; with EMS available,
in 336032 bytes low memory. Future needs of external programs may vary.
In the FWKCSC/FWKCS client/host configuration, client while running needs only
32624 bytes of memory; any external programs are run on the host processor.
Be sure that you have available on your PATH:
DOS ATTRIB; and a version of QBASIC, GWBASIC, BASICA, or BASIC,
suitable for use on your system.
To exploit FWKCS options, also have on your PATH:
* Phil Katz's PKZIP(R) and PKUNZIP(R), Version 2.04g.
* Vernon Buerg's LIST program, a recent version.
* McAfee's SCAN, preferably most recent version of 2.x.x series. (1.xx runs)
DOS MORE (normally provided in DOS system or DOS session)
(* shareware programs; please register)
(If your system fragments large files, preferably include a file
defragmentation program, for example, Peter Norton's Speed Disk.)
B = go Back 1 screen. F = go Forward 1 screen. A = Abort (quit).
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[ ] Fourth screen of GO. The "Menu for Installation" screen is part of GO.
Detailed explanations appear below.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Menu for Installation - FWKCS(TM) Contents_Signature System, Version 2.00.
~~~~~~~~~~~~~~~~~~~~~
Note: Options 1-5 must have creation rights to make their subdirectories.
Allow at least 5 Megabytes + 8%% of total filelengths, of free workspace.
Options 1,2,3,6,0 execute immediately. Options 4,5 (with *) explain further.
For single user, no bulletin board, any/all drives C:-Z:, installation on C:,
with no overlapping paths (won't reach the same physical file by two paths):
1. including only zipfiles, with extension .Z*.
2. including only zipfiles, any or no extension, self_extracting or not.
3. including all accessible non_directory files.
For more detailed control of installation, including bulletin board use,
multiple local users, selected drives, specific file extensions, string
searches, choice of only zipfiles or of all non_directory files, etc.:
* 4. searches any drives C:-Z:, limited .ext choice, no string searches.
* 5. flexible: selected drives A:-Z:, selected .ext's, string searches;
can replace Ver. 1.12 or later; can keep old CSLISTs or start empty;
can configure for client/host operation.
6. get REGISTER.DOC, REGISTER.FRM, README.1ST, and README.TXT to read first.
0. unpack the FWKCS(TM) Contents_Signature System into the current
directory, without installation. This is used in special cases.
To choose option 0...6, press the corresponding numeric key.
B = go Back 1 screen. A = Abort (quit).
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Explanations of Options 0...6:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Option
~~~~~~
0. (listed last in menu) is for unzipping the package without doing any
installation. For example, if you have installed FWKCS, and have an
accident which damages one or more of the FWKCS programs, you can
unpack the whole package into a temporary subdirectory using option 0
on the menu, copy out a replacement for the damaged file, delete all
the files in the temporary directory, and remove the directory.
1. install the \cs and \csa directories on drive C:, search any and all
drives C: - Z: on the system, searching only for zipfiles which have
an extension of .Z*, such as .ZIP, .Z01, .Z, etc. Files which have an
extension of .Z*, but are not zipfiles, are skipped. This system
search is also able to find zipfiles which have their hidden and
system attribute flags set. This option executes when you press the
1 key.
Example: Suppose you wish to install FWKCS on your C: drive, and suppose you
wish to include the contents_signatures for the new version of
FWKCS and only zipfiles on your system having file extension .Z* .
In that case, you would type
install <enter>,
follow the instructions on the screen,
when you reach the "Menu for Installation", choose option '1'.
The rest of the installation is automatic.
2. install the \cs and \csa directories on drive C:, search any and all
drives C: - Z: on the system, searching only for zipfiles, any or no
extension, self_extracting or not. This system search is able to find
files which have zipfile structure, even if they have their hidden
and system attribute flags set. This option executes when you press
the 2 key.
3. install the \cs and \csa directories on drive C:, search any and all
drives C: - Z: on the system, searching for any and all accessible
non_directory files, that is, files which are not themselves
subdirectories (a subdirectory is actually a file which contains
directory information about the files "in" the subdirectory, but
files which are being used in that way are not included in this
search).
If this search finds a .GIF file, with or without a .GIF file
extension, if will check to see if the .GIF file has a spurious tail
attached after the end of the working file itself (for example, some
communications protocols pad the end of the file to bring it up to
their packet size). If it finds such a spurious tail, it will try to
remove that material from the end of the file. If it is not allowed
to remove that apparently spurious material (for example, the file
may have its attribute set to read_only, or may be located on a
CDROM, etc), then FWKCS will ignore that apparently spurios material
when it generates the contents_signature for that file.
This system search is able to find files, even if they have their
hidden and system attribute flags set. If you are installing FWKCS on
a system which is keeping one or more files open (e.g., for system
use) and inaccessible, this option 3 installation process will pause
when it tries to read such a file, then display an error message (and
save a copy in FWKCS.ERR), and then continue working. This option
executes when you press the 3 key.
4. searches any and all drives C:-Z:, limited .ext choice, no string
searches. Option 4 displays the screen for the program 2_SETUP.BAT,
and asks you if you wish to use that program. 2_SETUP.BAT allows you
to install the \CS directory and the \CSA directory on the same, or
on different, drives, which can be any drives on your system. Along
with that additional ability, it allows you to choose from the same
kinds of searches as are offered in options 1, 2, and 3,
respectively, as described above.
If you press N ("no"), you are returned to the installation menu; if
you press Y ("yes"), you are returned to the command line, with
2_SETUP.BAT's screen still displayed on the screen. (a copy of that
screen is provided below, with explanation)
5. this is the most flexible of the installation options; and with the
larger range of choices comes the need for more input from the user
(explained in detail, below):
you can search on selected drives A:-Z:, look for selected file
extensions, do string searches for which paths and/or files are to be
included and for which ones are to be excluded (this is very
powerful);
you can replace FWKCS Ver. 1.12 or later;
you can keep old CSLISTs or start with empty new ones;
you can configure for client/host operation.
Option 5 displays the screen for the program S_SETUP.BAT, and asks
you if you wish to use that program. If you press N ("no"), you are
returned to the installation menu; if you press Y ("yes"), you are
returned to the command line, with S_SETUP.BAT's screen still
displayed on the screen. (a copy of that screen is provided, below,
with a detailed explanation of the inputs needed from the user)
6. this unpacks new copies of REGISTER.DOC, REGISTER.FRM, README.1ST,
and README.TXT, e.g., in case the package has been damaged and one or
more of those four files has been altered.
Screens and Examples for options 4 and 5:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Option 4:
~~~~~~~~~
If you choose option 4, this screen is displayed:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Part of FWKCS(TM) Contents_Signature System, Version 2.00.
(C)Copyright Frederick W. Kantor 1989, 1995. All rights reserved.
2_SETUP.BAT to install the FWKCS(TM) Contents_Signature System,
searching for non_directory files,
on a system with no overlapping paths, any drive(s) C:-Z:.
(Note: this does not install options g and z.
See README.TXT and FWKCS200.REF.)
(2_SETUP.BAT is used after GO.BAT.)
Usage: 2_SETUP d n D "<enter>"
d without ":" is drive for the \CS Contents_Signature subdirectory.
n = 1 include only zipfiles with extension .Z*.
2 include only zipfiles, any or no extension, self_extracting or not.
3 include all accessible non_directory files; strip GIF tail, keep date.
D without ":" is drive for the \CSA Contents_Signature Activity place.
Shall I turn 2_SETUP.BAT over to you? (Y/N) A = Abort.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
If you press Y, you are shown the following additional line, and then
returned to the command line:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
for online help, type 2_SETUP /* and then press the enter key.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
If you have to make any changes in your system before proceeding, you can
take a break at this point, come back later, and type 2_SETUP /* <enter>
to put the help material back on the screen where you can see it while you
key in your command_line entries.
Examples: Suppose you wished to install the system on your J: drive, and
include only zipfiles which had an extension of .Z* . In that case,
you could use this command line:
2_SETUP j 1 j <enter>
(the rest of the installation is automatic)
Suppose you wished to install the \CS directory on your H: drive,
install the \CSA directory on your D: drive, and include all files
which had zipfile structure, independent of filename.ext. In that
case, you could use this command line:
2_SETUP h 2 d <enter>
(the rest of the installation is automatic)
In fact, the "Menu for Installation" options 1, 2, and 3 call
2_SETUP.BAT, and provide it with appropriate command_line inputs.
-----------------------------------------------------------------
Option 5:
~~~~~~~~~
If you choose option 5, this complex screen is displayed (this is explained
in detail, below); this screen serves to provide "reminder" information, and
should be used in conjunction with the more detailed explanation given
below:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Part of FWKCS(TM) Contents_Signature System, Version 2.00.
(C)Copyright Frederick W. Kantor 1989, 1995. All rights reserved.
S_SETUP.BAT to install the FWKCS(TM) Contents_Signature System,
searching for non_directory files,
including specified drive(s)(A-Z) and file extension(s) or string(s).
NB: this does not install options g and z. See README.TXT, FWKCS200.REF.
Usage: S_SETUP d n D N C q r s t v - .Z .GIF :\UP\ x .SYS "<enter>"
S_SETUP d n D N C q r s t v - : x \DOS\ "<enter>"
S_SETUP d ! D N C "<enter>" (to replace 1.12 or later, keep CSLISTs)
d without ":" is drive for the \CS Contents_Signature subdirectory.
n = 1 include only zipfiles, any or no extension, self_extracting or not.
2 include all accessible non_directory files; strip GIF tail, keep date.
"!" is literal, for no search (keeps old CSLISTs, else starts new empty).
D without ":" is drive for the \CSA Contents_Signature Activity place.
N = 0 get default settings from old \CSA\FWKCS, Ver. 1.12 or later.
1 install default settings for Ver. 2.00 (including new options).
C = 0 process uploads directly; 1 client/host configuration.
q r s t v indicate single letters for drives to search.
"-" is literal, followed in CAPITAL LETTERS by extensions (with "."), or
other strings, to include. N.B.: do not use 2 paths to same file.
":" in " - : " means "all non_directory files" (may include hidden/system).
"x" in lower_case is literal, followed in CAPITAL LETTERS by exclusion list.
Shall I turn S_SETUP.BAT over to you? (Y/N) A = Abort.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
If you press Y, you are shown the following additional line, and then
returned to the command line:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
for online help, type S_SETUP /* and then press the enter key.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
If you wish to make any changes in your system before proceeding, or wish to
give careful thought to how you would like to set up the search procedure,
you can take a break at this point, come back later, and type
S_SETUP /* <enter> to put the help material back on the screen where you can
see it while you key in your command_line entries.
Here is an expanded view of the S_SETUP.BAT screen, with additional
explanation:
Usage (illustrating different command lines):
S_SETUP d n D N C q r s t v - .Z .GIF :\UPLOADS\ x .SYS <enter>
OR
S_SETUP d n D N C q r s t v - : x \DOS\ <enter>
OR
S_SETUP d ! D N C <enter>
where d without ":" is a single letter for the drive on which
to put the \cs subdirectory.
n = 1 include only zipfiles, with any or no extension,
whether self_extracting or not.
2 include all accessible non_directory files
(this can include hidden and system files).
" ! " (literal) is used when you do not want FWKCS to
search for files.
! can be used when:
installing a new version of FWKCS to replace an
existing installation of Version 1.12 or later,
while keeping your existing subdirectory
structure, CSLIST?.* files, uploads log, and
special messages;
making a new installation, starting with an empty
set of CSLIST.SRT, CSLIST.NDX, CSLIST1.SRT, and
CSLIST1.NDX files. (For example, QIKSTART.BAT,
discussed below, calls S_SETUP.BAT and passes
this command to it.)
D without ":" is drive for the Contents_Signature
Activity \CSA place.
N = 0 get default settings from old \CSA\FWKCS.COM or
\CSA\FWKCS.EXE, Version 1.12 or later. Note that
there have been many features added in successive
releases of FWKCS since version 1.12, and it can be
much easier to save a copy of your old macro
screen(s) and install all the new macros (option N=1,
below), then -- if changes are needed -- use
GET_DFLT.BAT to make PUT_DFLT.BAT, edit PUT_DFLT.BAT
as appropriate, and then run PUT_DFLT to install the
modified settings. Always keep backup copies when
making changes in the macros in FWKCS.EXE or
FWKCSC.COM.
1 install default settings for Ver. 2.00 (including new
options).
C = 0 each node's computer processes each upload directly.
1 each node runs the evaluation of uploaded files, the
evaluation of files already on a BBS, checking for
duplicate files, virus testing, and related functions
as a client under an FWKCS host.
The client/host configuration is discussed in
more detail, below. If you have many slow nodes
and a few fast processors, all on the same
network; or if most of your fast processors have
many nodes on each, and you also have one or more
local fast processor(s) on the net which is/are
not used for node interface; then you may find it
especially convenient to use the client/host
configuration to automatically allocate the
CPU_intensive screening of uploads to one or more
fast processors, to bring the typical
upload_testing speed of all the nodes on your
network up to nearly the speed of the fastest
processors on your network.
The client program (FWKCSC.COM) can run in about
32 Kb of RAM (1 Kb = 1024 bytes).
When running in host mode under a multitasking
time_slice system, FWKCS.EXE looks for work
posted to the host queue, and returns most of its
time slice to the system when it does not have
work to do.
q r s t v are examples of single letters designating drives to
search; all 26 letters a...z can be listed, with spaces
in between.
the " - " is literal, to separate the list of drives from the list
of extensions or strings (see next item).
.Z .GIF :\UPLOADS\ in CAPITAL LETTERS, are examples of file
extensions (note the ".") or other strings, for
non_directory files (or their paths) which are to be
included.
For example, specifying .Z has the effect of including
files which DOS would find for *.Z* , including
searching in all subdirectories, and all hidden or
system files.
Or, if you wish to include all the non_directory files
in each of your :\UPLOADS\ subdirectories on every drive
you listed, plus all the non_directory files in all the
subdirectories below them, then you could put :\UPLOADS\
in the list of extensions or strings. Note the ":" used
in this example: because a colon appears directly after
the drive letter, using it in the string causes the
search to look for a string starting in the
root_directory position.
The string_search feature can be used with any substring
which can be found anywhere in a (capitalized)
D:\PATH\FILENAME.EXT character_string.
To include all non_directory files which have an
extension, whatever that extension may be, or which are
located on a path which includes a directory name
containing a file extension, you could specify a period
"." as your only entry after the "-", by using " - ."
(without the quotes) as your last entry. Note that this
may include hidden and system files.
Note: Under some circumstances, you may find it easier
to specify a set of file extension(s) or other
search string(s) which results in some
d:\path\filename.ext's being included more than
once.
If each file is reached by only one path (that is,
there is not any case where the same physical
file is reached via 2 different paths),
then, in S_SETUP, FWKCS automatically deletes
the extra references.
":" in " - : " means "all non_directory files" (may include
hidden/system). This is because every
D:\PATH\FILENAME.EXT contains a ":".
"x" in lower_case is literal, followed in CAPITAL LETTERS by an
exclusion list. In working with complex systems, it
sometimes is simpler to specify which files are to be
included if the inclusion list can capture a few
filenames which are not wanted, and those are then
excluded by naming them in an exclusion list.
Examples: " x .SYS " would exclude all files with
extension ".SYS", and any path which contained
a directory whose name included that ".SYS"
extension;
In working under OS/2 running on FAT formatted
drives, OS/2 has a hidden system file named
"EA DATA. SF" in the root directory of each
FAT formatted drive, which it holds open.
These can all be skipped, by putting :\EA in
the exclusion list.
Most of the OS/2 files are normally installed
in a tree structure, comprising \OS2 with
subdirectories, and \DESKTOP with
subdirectories. OS/2 holds open some of the
files in the \OS2 tree, especially OS2.*,
OS2SYS.*, and SWAPPER.DAT. The files in or
under the \OS2 directory can be skipped, by
putting :\OS2\ in the exclusion list.
Examples:
5.1. Suppose you have the following situation:
you have a bulletin board system, using drives E:, F:, G:, I:, and
J: for storing zipfiles for your BBS, and suppose you are using a
directory named :\BBS\ on each drive (plus any subdirectories under
the :\BBS\ directory) to hold the zipfiles;
you wish to install FWKCS on your C: drive and include only the
zipfiles located in all the \BBS\ directories and their various
respective subdirectories;
you are installing the system for the first time;
and you wish to process uploaded files using the same computer that
is connected to the node on which the uploaded file arrives (rather
than use the client/host configuration):
In that case, you would type
install <enter>,
follow the instructions on the screen,
when you reach the "Menu for Installation", choose option '5',
when the help screen for S_SETUP.BAT comes up, it asks (at the
bottom)
"Shall I turn S_SETUP.BAT over to you? (Y/N) A = Abort."
press Y for YES,
then type
S_SETUP c 1 c 1 0 e f g i j - :\BBS\ <enter>
(be sure to use ALL CAPITAL
LETTERS in the list of what to
include, in this case :\BBS\ )
The rest of the installation is automatic.
5.2. Suppose you are running under IBM's OS/2, and wish to install FWKCS
on your J: drive, and suppose you wish to include the
contents_signatures and options for the new version of FWKCS, and
include all files on drives E:, F:, G:, and Q:, except files on the
paths :\OS2\ and :\DESKTOP\, and except for files which start with
:\EA ; using each node's local computer to process newly uploaded
files.
In that case, you would type
install <enter>,
follow the instructions on the screen,
when you reach the "Menu for Installation", choose option '5',
when you are asked
"Shall I turn S_SETUP.BAT over to you? (Y/N) A = Abort."
press Y for YES,
then type
S_SETUP j 2 j 1 0 e f g q - : x :\OS2\ :\DESKTOP\ :\EA <enter>
Notes: the " - : " is literal: a colon ":" appears in
every path, so putting a ":" as the inclusion entry
tells S_SETUP to include every file on the system;
this is followed by lower case " x " to mark the
beginning of the exclusion list; after the " x ",
every letter used in that exclusion list must be in
UPPER CASE.
The rest of the installation is automatic.
After the automatic installation has finished running,
the printed record will tell you how and where to get
on_line help.
On a large system, this automatic procedure can take
hours to run. If you are using drives which have slow
access to files, it can take many hours.
After running INSTALL, go to step 15.
[ ] REPLACE - for quickly replacing a working FWKCS system, version
1.12 or later; does not search your file collection. If
you are not running a recent version of FWKCS, it can be
easier to copy your old version of FWKCS.EXE or FWKCS.COM
to FWKCSOLD.*, tell REPLACE to install the new options on
FWKCS.EXE, and later use GET_DFLT to tailor the settings
using your old version's /d and /d! screens for
suggestions.
To use REPLACE, do
[ ] REPLACE <enter>
and then follow the instructions on the screen.
This is the main instruction screen from REPLACE:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Part of FWKCS(TM) Contents_Signature System, Version 2.00.
(C)Copyright Frederick W. Kantor 1989, 1995. All rights reserved.
Your use of the FWKCS(TM) Contents_Signature System is at solely your own
risk. For safety, please have proper backups of your files.
REPLACE.BAT to replace a working FWKCS(TM) system, Ver. 1.12 or later;
for use in same directory with FWKCS200.ZIP, FWKCS.200, and FWKCS_TM.200.
To proceed, have QBASIC, GWBASIC, BASICA, or BASIC available on your path, as
appropriate for your operating system;
have a working copy of FWKCS in \CSA, containing your macros, paths, etc..
(If you are installing FWKCS(TM) for the first time, use INSTALL.BAT.)
~~~~~~~~~~~
Usage: REPLACE d D N C "<enter>"
where d without ":" is the drive for the \CS directory
D without ":" is the drive for the \CSA directory
N = 0 get default settings from old \CSA\FWKCS, Ver. 1.12 or later.
1 install default settings for Ver. 2.00 (including new options).
C = 0 process uploads directly; 1 run as client under FWKCS host.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
where d without ":" is a single letter for the drive on which
to put the \cs subdirectory.
D without ":" is a single letter for the drive for the
Contents_Signature Activity \CSA place; REPLACE looks
here for a copy of FWKCS.COM or FWKCS.EXE.
N = 0 get default settings from old \CSA\FWKCS.COM or
\CSA\FWKCS.EXE, Version 1.12 or later. Note that
there have been many features added in successive
releases of FWKCS since version 1.12, and it can be
much easier to save a copy of your old macro
screen(s) and install all the new macros (option N=1,
below), then -- if changes are needed -- use
GET_DFLT.BAT to make PUT_DFLT.BAT, edit PUT_DFLT.BAT
as appropriate, and then run PUT_DFLT to install the
modified settings. Always keep backup copies when
making changes in the macros in FWKCS.EXE or
FWKCSC.COM.
1 install default settings for Ver. 2.00 (including new
options).
C = 0 each node's computer processes each upload directly.
1 each node runs the evaluation of uploaded files, the
evaluation of files already on a BBS, checking for
duplicate files, virus testing, and related functions
as a client under an FWKCS host.
(see also discussion of C options under S_SETUP,
above)
(REPLACE.BAT does preliminary checks, calls S_SETUP.BAT
with commands tailored for this installation)
After running REPLACE, if you do not have a registration
key, be sure to see step 29 and to do step 30. You might
find the rest of this checklist interesting: in
successive versions since 1.12, many new features have
been added. This checklist provides a guided tour of
selected features, and a system maintenance list.
[ ] QIKSTART - quick, does not search your file collection; this
provides a convenient way to see the FWKCS system
structure, programs, and literature.
To use QIKSTART, do
[ ] QIKSTART <enter>
and then follow the instructions on the screen.
The QIKSTART screen:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Part of FWKCS(TM) Contents_Signature System, Version 2.00.
(C)Copyright Frederick W. Kantor 1989, 1995. All rights reserved.
Your use of the FWKCS(TM) Contents_Signature System is at solely your
own risk. For safety, please have proper backups of your files.
QIKSTART.BAT to set up the FWKCS(TM) Contents_Signature System, Ver. 2.00;
for use in same directory with FWKCS200.ZIP, FWKCS.200, and FWKCS_TM.200.
QIKSTART does not search your file collection (see README.TXT).
Disk space: allow 5 Meg. setup, ca 1.8 Meg. static files, starting empty.
For full installation with search of your file collection, use INSTALL.BAT.
(More information provided as FWKCS.200 package is opened; see README.TXT.)
If you are replacing FWKCS Ver. 1.12 or later, use REPLACE.BAT.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Usage: QIKSTART d D "<enter>"
QIKSTART d D c "<enter>"
where d without ":" is the drive for the \CS directory
D without ":" is the drive for the \CSA directory
c capture contents_signatures re FWKCS200.ZIP (recommended).
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
After running QIKSTART, go to step 15.
[ ] GETLOOK - only brings out programs and literature re remote
Lookup etc, and files which may be called by FWKCS.EXE.
To use GETLOOK, do
[ ] GETLOOK <enter>
and then follow the instructions on the screen.
After running GETLOOK, you can delete these files in the
temporary directory:
[ ] FWKCS200.ZIP
[ ] FILE_ID.DIZ
[ ] WHATSNEW.TXT
[ ] INSTALL.BAT
[ ] REPLACE.BAT
[ ] QIKSTART.BAT
[ ] GETLOOK.BAT
[ ] FWKCS.200
[ ] FWKCS_TM.200
If you are very tight on space, and will not want to use
the main reference, you can also delete FWKCS200.REF.
But, before you do that, try this: FWKCS /** <enter>.
After deleting unwanted files, copy or move the remaining
files to a directory already on your path, and empty and
remove the temporary directory.
Then, go to step 28.
[ ] 15. When the setup program finishes running, you should be in your
\CSA Contents_Signature Activity place (a directory with 21
subdirectories); and there should be a "welcome" screen. If
that came out OK, then
[ ] Empty and remove the directory made in step 9.
If you ran INSTALL, and did a fresh installation with a system search
to build your data base; or if you ran REPLACE, and replaced a working
version of FWKCS which already has its data base:
you can take advantage of the anti-piracy resource material
provided separately in FWKCXnnn.ZIP.
It comes with a short instruction file / check list.
XCLEANUP.BAT and FLAG_REV.BAT are used for that purpose. They
are located in your \CS directory.
For direct on_line help, do FLAG_REV /* <enter>,
XCLEANUP /* <enter>,
or use CSM in your \CS directory.
----------------------------------------------------------------------------
Here is some additional explanatory material which you may want to use, in
installing or maintaining the system -- you might start using it at this
stage of the installation procedure, or wait until later. I suggest that you
scan it now, and come back to it later:
There are many useful options. The above setup procedures have set
up a place for you to work with them, and installed them in FWKCS
so that they refer to that place. This configuration is for
multiple concurrent operations, including single or multiple local
users and multi_node bulletin board systems.
The options are installed via "macro"s, loaded into FWKCS itself,
after which they are available from the command line. This is
explained in FWKCS200.REF. The macros can be displayed, as part of
the user_settable defaults, by typing FWKCS /d <enter> and
FWKCS /d! <enter>.
The program CSAMACS.BAT was used for setting up a work area
for use with a multinode BBS. It is called autoimatically during
the setup procedures, or can be called while in the \CS directory:
CSAMACS d N <enter>
or
CSAMACS d N c <enter>
where d without a ":" is a single letter for the drive
on which to install the Contents_Signature
Activity \CSA place.
N = 0 get default settings from old \CSA\FWKCS.COM, or
.EXE, Version 1.12 or later.
1 install default settings for Ver. 2.00 (including new
options).
c create special copy of PCBTEST.BAT to run as FWKCS
client.
CSAMACS sets up the \CSA Contents_Signature Activity subdirectory
with 21 additional subdirectories under it, prepares it as a work
place, and moves to there. Once you get there (and have perhaps
had a chance to look at LOOKUP.DOC, FWKCTEST.BAT, and
FWKCHTST.BAT), do a DIR listing to see what's there.
Then type FWKCS /d <enter>, and then FWKCS /d! <enter>, to see the
new macros, and refer to FWKCS200.REF for what these macros and
options are able to do.
For safety, the automatic installation procedure write_protects
all the initial files in the \CSA Contents_Signature Activity
place. To make any changes in the entries on the FWKCS.EXE /d and
/d! screens, you will need to unprotect FWKCS.EXE. To do this,
type
attrib -r fwkcs.exe <enter>
Then, set paths for items 5-8 on the /d screen, so that FWKCS can
reach those programs more efficiently. Otherwise, it has to search
the path for those programs which are not in its default
directory. If you look at item 9 on the FWKCS /d screen, you will
see that the path for the uploads log has been set to create or
add to FWKUPLD.LOG in the d:\CSA subdirectory.
If you wish to keep your upload log in a different place, or use a
different name for it, you can set it in item 9 on the /d screen,
by typing
fwkcs d:\path\filename.ext /d9 <enter>
If you do not use a d:\path for the uploads log, then each node
writes separately to an uploads log in its default directory.
Errors are logged to FWKCS.ERR in the default directory, to help
keep track of where a problem occurred, and optionally also to a
central file. As part of routine maintenance, you can do a
system_wide search on your equipment for any FWKCS.ERR file which
may have been created there; a central error log can be used to
notify you when such a system_wide search would be appropriate.
After you have set the paths, you can protect your configuration
by setting the attribute of FWKCS.EXE to read_only (shareable
read_only). To do that, type
attrib +r fwkcs.exe <enter>
If you protect FWKCS.EXE in this way, remember to unprotect it
(ATTRIB -r) before you try to change any entry on the /d or /d!
screen. Otherwise, you will get an error message saying that
access was denied.
For local BBS work, you can create a configuration file to use
instead of the macros used for BBS operation, by running
fwkcs [uvwxyzcdefgh] [-localmac] <enter>
and then use a word processor (with the wordwrap OFF) to edit
LOCALMAC -- for example, you can include /a5 or /a6, or other(s),
in LOCALMAC, so that you do not have to make the entry each time.
Then, you can include this modified LOCALMAC in your command line,
this way:
fwkcs (whatever goes here) [+localmac] (whatever else)
the [+file] appearing in the command line tells FWKCS to read
the file as part of the command line, inserting it at that
location in the surrounding material. The file can have full
d:\path\filename.ext. See FWKCS200.REF.
Make the copy of FWKCS.EXE which is in your \csa subdirectory
available on your path, by adding d:\csa, where d is its drive, to
your path.
>>--> Use only one source copy for all the copies of FWKCS.EXE on your
path. If you have multiple servers with a copy of FWKCS.EXE on
each, make them all from the working copy of FWKCS.EXE which has
had its defaults and macros loaded. (If you have run 2_SETUP or
S_SETUP (which run CSAMACS), or have run CSAMACS directly, that
working copy of FWKCS.EXE is in your \csa subdirectory, and a
write_protected backup copy is in your \cs subdirectory.)
These setup procedures leave copies of FWKCS.EXE and FWKDG.COM
behind in the \cs directory. The \csa area contains files which
you can experiment on, and material to read while you do this. If
you destroy some of the FWKCS files, you can go to step 9, above,
run INSTALL, and choose option 0 on the Menu for Installation,
copy the missing files, delete the rest of the files in the
temporary directory, and remove the empty temporary directory.
I suggest you look at the discussion re removing duplicate files,
in this section, below. It is something you may well want to
pursue, at your convenience. For future reference, I suggest that
you look at section 5, on revising the four CSLIST*.* files. You
may also wish to look at the discussion in section 6, below, on
customizing messages to users.
Note to Sysops:
The macros installed by CSAMACS do not include the important &g
option. To add this option, type
ADD_G <enter>
On completion, this displays the FWKCS /d! screen. The addition is
made to the right end of macro [y], where it should appear in
capitalized form.
The operating version of PCBTEST.BAT provided in your \CSA
Contents_Signature Activity subdirectory by CSAMACS supports this
function. It is a single line,
FWKCS %1 %2 %3 /t20a5[uvwxyzcdef]
During testing, this preserves the AV status and internal
structure of the uploaded file. It is able to run virus testing on
all the files in a zipfile which contains a full DOS tree of
subdirectories, while using only one subdirectory per node as a
work area. See FWKCS200.REF.
If you wish to restrict your BBS to accept only zipfiles, you can
accomplish this by adding the z option to the macros used by FWKCS
in performing BBS activities. To do this, type
ADD_Z_56 <enter>
On completion, this displays the FWKCS /d screen. The addition is
made to the left end of macro [d], where it should appear in
capitalized form.
Separately, you can set the macro used with /a3 and /a4 to accept
only zipfiles, by typing
ADD_Z_34 <enter>
On completion, this displays the FWKCS /d screen. The z option is
added to the left end of macro [b], where it should appear in
capitalized form. With just that addition of z, the programs
ACCESION and ACCESZIP will rename non_zip files ".NZ".
Notes: Option s suppresses renaming under /a3 and /a4.
The right end of macro [b] has been left as V so
that -- if the version of SCAN which you are
running accepts an external data file at run_time
-- you can easily add an external virus_data_file
d:\path\virdata to ACCESION.BAT and ACCESZIP.BAT.
To do this, use a word processor to make the
following insertion in each of the two .BAT
programs, using a contiguous string of characters
with no blank space between the "]" and the
semicolon ";" :
ACCESION.BAT:
change FWKCS %1 /t60a3[uvwxb]
to FWKCS %1 /t60a3[uvwxb],d:\path\virdata;
ACCESZIP.BAT:
change FWKCS %1 /t60a4[uvwxb]
to FWKCS %1 /t60a4[uvwxb],d:\path\virdata;
See FWKCS200.REF, /a3 and /a4, option v.
Option !N is a bit_mapped option for deferred disposition of files
rejected because of zip in zip or because their AV_stamp was
banned, obsolete, or deficient. See discussion under Auxiliary
Function 5 in FWKCS200.REF. To add !3, you can make \CSA your
current directory, and then do
ATTRIB -r FWKCS.EXE
ADD_!3
ATTRIB +r FWKCS.EXE
to add !3 to the left end of macro [d] for use under Auxiliary
Functions 5, 6.
Split Testing
~~~~~~~~~~~~~
Faster modems are coming into wider use, and various test
procedures, such as virus_testing and test for file integrity, can
present an unwelcome waiting time for a user who is, for example,
calling long distance. Two programs are provided to handle this in
the FWKCS(TM) Contents_Signature System, SPLITEST.BAT and
DO_BLOG.BAT, together with assembly_language code in FWKCS.EXE.
SPLITEST replaces FWKCS macros [f], [g], and [h], to split the
test into a quick part, done and reported to the user while the
user is waiting, and a slower part, which can be done later by the
same processor -- or can be done by another processor on a network
or as another task on a multitasking system, while the user goes
on to something else.
You are asked to provide a search list, d:\CSA\SRCH , of the
places where FWKCS should look to find the backlogged file to
process further. This should have one entry per line, flush left,
of the form d:\path for each directory to be searched. In order
to avoid conflict with the BBS operating system, make the first
directory different from the one into which the file is first
uploaded, so that the BBS will have time to move the file before
FWKCS opens the file. A wait_time is provided, during which FWKCS
will wait for a file to appear in the first directory on the
search list, *tNNNN.NN (up to 9999.99 seconds). SPLITEST initially
sets this to 5 seconds (you can use GET_DFLT to make PUT_DFLT.BAT,
to easily change *t in macro [f]. After waiting for the file at
the first location, if the file is not yet there, then FWKCS
searches quickly through subsequent locations on the search list
until it either finds the file or uses up the list. If it does
not find the file at any location on the search list, it looks
last in its own default directory.
DO_BLOG processes the backlog produced by the split testing. It
can automatically allocate this work to multi_tasking processor(s)
and to multiple processor(s) on a network, to share the work load.
When multiple processors are used to process the backlog, each
should be run in a separate work area, to avoid any conflict in
the operation of DO_BLOG. If you are using a ##CELLAR below the
default directory of each node, then each of these separate work
areas for processing the backlog should also have its own separate
##CELLAR below it.
DO_BLOG keeps two local lists, PASS2.LST and FAIL2.LST, to keep
track of which files passed the second test and which ones failed;
and FWKCS puts these entries into two central lists, d:\CSA\PASS2
and d:\CSA\FAIL2. In a multitask or multiprocessor environment,
FWKCS's network queue timing provides protection against conflicts
in appending these entries to these central lists.
PASS2.LST contains a one_line note for each file that passed
further testing; and, if you specified that a final zipfile
comment be added, a further entry saying that the zipfile
comment has been replaced. FWKCS does not make a further entry
in FWKUPLD.LOG when a file passes further testing.
FAIL2.LST contains a report of the reason why the file was
rejected, like what would have been presented to the user had
the file been rejected while the user was waiting, but the part
of the message created by FWKCS is in plain ASCII (i.e., it
does not include any special PCBoard @codes). These reports
are separated by a horizontal dashed line. FWKCS makes a
further entry in FWKUPLD.LOG, noting the time and the reason
why the file was rejected, etc.
If FWKCS (called by DO_BLOG) finds that it cannot delete a
rejected file (e.g., after the file has been copied to its target
directory), then, as set up by SPLITEST, it creates a DWRN
deletion_failure_warning file in your \CSA . For example, this
might happen on a network if someone started to download a file
before the second part of the testing was completed. You can set
*dNNNN.NN (up to 9999.99 sec.) to specify how long to keep trying
before reporting failure. SPLITEST sets this to 5 seconds, to
avoid excessive delay when only one processor is handling the
backlog.
Client/Host Configuration
~~~~~~~~~~~~~~~~~~~~~~~~~
The computation_intensive steps in evaluating an uploaded file
may add an undesired amount time to processing files on slower
computers, or in systems which have many nodes under a computer.
One approach is split testing, discussed above. It is also
possible to have each node run as a "client" under one or more
FWKCS hosts. For example, the host processors can be Intel 486
CPU's, while each node might be no more than an 8088.
FWKCSC.COM is provided for operation as a client. It can fit into
ca 32 KB of memory.
Operation in the client/host configuration requires setting up the
.BAT program called for processing the upload, so that FWKCSC runs
as a client. Macros [a] and [b], as installed using the automatic
installation procedure, contain instructions for operation as a
client. (The installation option of specifying whether the node
is to act directly or in a client/host configuration, provides a
choice of whether the .BAT program created for use by the node(s)
is configured for direct action or to act as a client; in either
case, installing the new options installs macros [a] and [b].)
Note: you can make changes using GET_DFLT.BAT to make
PUT_DFLT.BAT, and then use a word processor (with wordwrap
turned off) to edit PUT_DFLT.BAT. If your word processor
can process two files together, you might use it to copy
lines for macros from BBCLIENT.BAT or other setup
programs, into PUT_DFLT.BAT.
(for help re GET_DFLT.BAT, type GET_DFLT /* <enter>
after installation)
BBCLIENT.BAT (re)installs macros [a],[b] in FWKCSC.COM, and can
also create a version of PCBTEST.BAT configured to run as a client
under an FWKCS host. Because BBCLIENT.BAT is a .BAT program, you
can look inside it for the exact code used.
Operation of the host is specified in DO_HOSTQ.BAT. It can be run
on one or more host processor(s), (each) monitoring the dynamic
host queue, taking work from it, and delivering the result to the
respective client. To avoid conflict, each host should run in its
own separate subdirectory. If you have specified the use of a
##CELLAR, then each host's work area should be set up with a
##CELLAR under it.
(For more detailed information re using FWKCS in a client/host
configuration, see FWKCS200.REF; re BBS use, brief notes appear
under Auxiliary Function 5; detailed discussion of client/host
operation appears under Auxiliary Function 8.)
Doing it in pieces
~~~~~~~~~~~~~~~~~~
It is possible that the above procedures might not meet your exact
needs -- for example, you might have a mixture of files with the
same extension in the same subdirectory, but wish to include only
some of them. There are step by step instructions for a wide
variety of circumstances, included in this package for your
convenience. See FWKCS200.REF.
For example, after running QIKSTART to set up a "skeleton"
for the FWKCS Contents_Signature System... The following approach
is for use in your \CS directory:
Basically, what you do is make a worklist, which includes
the d:\path\filename.ext for each file which you wish to
include. That worklist is a pure ASCII file, which you can
manipulate using a word processor. A text_find function is
provided in FWKCS.EXE, which you can use for selecting or
excluding material. For example, to include all files listed in
WORKTEMP which have an extension .Z*, do
FWKCS /t30a7.8f".Z" < worktemp > worklist
For a working example, see, for instance, S_SETUP.BAT.
FWKCS then accepts the worklist as an input, goes out and
gets the information, and makes a contents_signature list.
This is then sorted, after which it is indexed.
The drives for items #1-4 on the FWKCS /d screen are set by
QIKSTART; or, if you wish, you can run SETDRIVE d <enter> , where
d without ":" is the drive letter.
After you have made your WORKLIST (and, if you did not run
QIKSTART, INSTALL, or REPLACE, set your drive, made your \cs
subdirectory), and moved into your \cs directory, these lines can
be used to set up the contents_signature data base for the
FWKCS(TM) Contents_Signature System, including the step of
stripping the tail from GIF files (see FWKCS200.REF):
fwkcs /t30/1cfjpxz worklist cslist
fwkcs cslist cslist1.srt /t30s
del cslist
fwkcs /t30u
fwkcs /t30v
(the t30 allows for 30 seconds of network or access delay)
Those lines strip tails from GIF files, build the master file
using only unique full lines (in case your worklist contained
accidental duplicate entries of the exact same
d:\path\filename.ext), index it, protect it, and start an empty
quick_update file. Look to see if you have created a CSLIST.NDX,
a full CSLIST.SRT, a CSLIST1.NDX, and an empty CSLIST1.SRT. If
any are missing, check items 1, 2, 3, and 4 on the FWKCS /d screen
to make sure that you have pointed them to the right place.
Removing duplicate zipfiles and plain_files
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Note: if you have inserted material into zipfiles, (not
zipfile comments, but files put inside) and at
different times have made different insertions, then
those different inserts can disguise duplicate
files. In that case, to use these procedures for
recognizing and removing duplicate zipfiles, you
will first need to remove the effects of those
inserts. To remove the inserts themselves, you can
use the TOREJECT procedure, discussed in
FWKCS200.REF in connection with removing non_AV
files from within AV_zipfiles. (see FWKCS200.REF,
scan for AVONLY , and then read the discussion about
collecting each file line you want to reject into
TOREJECT.TMP and then running TOREJECT.BAS. This
material is available on_line; you can use CSAM to
get the literature for you.)
If you have a full set of examples of the inserts
you wish to remove, you can put them together in a
single zipfile, e.g., INSERTS.ZIP, and do the
following (as a single command line):
FWKCS /t30/1 INSERTS.ZIP | FWKCS /t30a7.8v"z" |
FWKCS /t30s | FWKCS /t30a7.1w ADLIST.SRT
and then use REMOVADS.BAT in your \CS directory to
make TOREJECT.BAT. After you inspect TOREJECT.BAT,
then, solely at your own risk, you can run it to
remove the inserts. Please make backups before you
run this automatic removal. After removing those
inserts, rebuild your CSLIST.SRT and CSLIST.NDX,
using the automatic procedures provided in your
\CS directory (while in \CS, do CSM <enter> for
help).
If inserts which you made in the past now pose a
large_scale problem re finding and deleting
duplicates on your system, it is suggested that
you contact the author for assistance.
After you have made CSLIST.SRT, there are some simple steps for
finding duplicate files. Working in your \cs subdirectory, run
csdups <enter>
After it finishes running, it will advise you that these files
have been created:
ZCS_DUPS list of groups of zipfiles with matching
zipfile_contents_signature(s) (zcs).
ZCS_DUPS.RPT report tabulating zcs grouping.
FCS_DUPS list of groups of non_zip files with matching
file_contents_signature(s) (fcs).
FCS_DUPS.RPT report tabulating fcs grouping.
ICS_DUPS list of groups of files which are contained in
zipfiles, with matching contents_signature(s)
(internal_cs (ics)).
ICS_DUPS.RPT report tabulating ics grouping.
FICSDUPS list of groups of plain files and files in
zipfiles, with matching contents_signature(s)
(file_cs + internal_cs (fics)).
FICSDUPS.RPT report tabulating fics groupings.
UNAVINAV.LST list of non_AV files found in AV_zipfiles.
You can take any of those DUPS files listing groups of apparently
duplicate files, rename it MULTIS, and skip to 15.2, below.
If you wish to split entries in CSLIST.SRT into separate lists of
contents_signatures, you could run
cs_split <enter>
After it finishes running, it will advise you that these files
have been created:
ZCS_LIST.SRT list of zipfile_contents_signature(s) (zcs) for
zipfiles.
FCS_LIST.SRT list of file_contents_signature(s) (fcs) for
non_zip files.
ICS_LIST.SRT list of contents_signature(s) (internal_cs (ics))
for files which are contained in zipfiles.
FICSLIST.SRT list of contents_signature(s) (file_cs +
internal_cs (fics)) for plain files and files in
zipfiles.
If you wish to do both the analysis and the split, you can run
CSFILKIT <enter>, which does both in one pass, and takes less time
than the total for running both CSDUPS and CS_SPLIT separately.
15.1 If you wish, rather than using CSDUPS, CS_SPLIT, and/or
CSFILKIT, you can use the FWKCS text_find function to select
material to process. For example, to find duplicate
zipfiles, do this:
FWKCS /t30a7.8f"z" < cslist.srt | fwkcs /t30/1sm > multis
15.2 MULTIS produced in step 15.1, above, and the ZCS_DUPS files
produced by CSDUPS and CSFILKIT, show groups of zipfiles which
have the same zipfile_contents_signature ("zcs"). For an
explanation of zcs's, see FWKCS200.REF.
The command line in 15.1 also creates a file called MULTCNT.RPT,
which shows a multiplicity count -- how many groups there were,
for each size of group (how many times were there two zipfiles
with the same zcs, how many times were there three with the same
zcs, and so on). This corresponds to the ZCS_DUPS.RPT produced by
CSDUPS and CSFILKIT.
Then, using a word processor, you can overwrite a lower_case "d"
into column 17 of each line that contains a file you wish to
delete. Be careful to leave that "d" out of one line in each
group. For example,
column 17
|
----------------------------------------------------------------
014FF56D 158AC LAWN2.ZIP z cs J:\PQRS
014FF56D 158ACdLAWN200.ZIP z cs M:\PQRS
----------------------------------------------------------------
0249E9AB 486D EQIPVIEW.ZIP z cs H:\PQRS
0249E9AB 486DdVIS.ZIP z cs K:\PQRS
>>--> If there is a possibility that you may have changed the mapping of
your drive(s), please be sure that they have the same mapping they
had when you made CSLIST.SRT, before you carry out the next step.
If it has a different name, rename the annotated file MULTIS.
Then, at solely your own risk, you can run
qbasic /run fwkc17d <enter> (or use whichever version of
BASIC is appropriate for your
system)
to delete all the files in the marked lines in MULTIS, and compile
a log (DELETED.LOG) of the deleted files. Note that FWKC17D
deletes whole zipfiles, and does not selectively remove files from
within zipfiles. (For an example of selectively removing files
from within zipfiles, see /1 option x, with discussion, in
FWKCS200.REF.)
Next, if your system has both zipfiles and plain files (e.g., .GIF
files), you can do another search for plain files which are
duplicates of other plain files, or which are duplicates of files
which appear inside zipfiles.
(If you wish to save your MULTCNT.RPT, do so before it gets
overwritten in the next example. If you got here by running CSDUPS
or CSFILKIT, the .RPT files were already given different names and
saved.)
If you did not use CSDUPS or CSFILKIT, you can find this form of
duplication, by doing this:
FWKCS /t30a7.8v"z" < cslist.srt | fwkcs /t30/1sm > multis
This makes a new MULTIS and a new MULTCNT.RPT, which correspond to
FICSDUPS and FICSDUPS.RPT produced by CSDUPS and CSFILKIT. If you
have removed duplicate zipfiles as a result of the zcs matchings
(keeping one out of each matching set), and have not yet made a
new CSLIST.SRT, then apparent matches found between files inside
different zipfiles may no longer be relevant.
But, matches found between non_zip files, or between non_zip files
and files which appear inside zipfiles, still provide a correct
basis for deciding to remove various of those non_zip files (the
ones which have "f cs" in their line).
So, you can use the same technique described above, but this time
for removing selected ones of those non_zip files.
After you do that, you should probably make a new CSLIST.SRT.
To help you make a new CSLIST.SRT, you can choose one of these
two:
NEWCSL n <enter>
n = 1 include only zipfiles with extension .Z*.
2 include only zipfiles, with any or no
extension, whether self_extracting or not.
3 include all accessible non_directory files
(this can include hidden and system
files).
to create all four cslist*.* files,
on a system with non_overlapping paths,
searching drives c: - z:,
OR
~~
S_NEWCSL N q r s t v - .Z .GIF :\UP\ x .SYS "<enter>"
S_NEWCSL N q r s t v - : x \DOS\ "<enter>"
N = 1 include only zipfiles, with any or no extension,
whether self_extracting or not.
2 include all accessible non_directory files (this can
include hidden and system files).
q r s t v are examples of single letters designating drives
to search.
the " - " is literal, to separate the list of drives from
the list of extensions or strings.
.Z .GIF :\UP\ in CAPITAL LETTERS, are examples of file
extensions with ".", or other strings, to include --
do not use more than one path to reach the same
physical file.
Note: Under some circumstances, you may find it
easier to specify a set of file extension(s)
or other search string(s) which results in
some d:\path\filename.ext's being included
more than once.
If each file is reached by only one path (that
is, there is not any case where the same
physical file is reached via 2 paths),
then, in S_NEWCSL, FWKCS deletes the extra
references.
":" in " - : " means "all non_directory files" (may include
hidden/system).
"x" in lower_case is literal, followed in CAPITAL LETTERS by
exclusion list.
For example, if your system keeps certain files open
and does not permit read_only access to them, you
can exclude them. If they are all located in a
single subdirectory, and you do not wish to include
any other files from that subdirectory, you could
exclude the whole subdirectory.
If you have a multinode bulletin board system, and,
for example, each node has its own subdirectory
named J:\NODE001 ... J:\NODE060, you might be able
to efficiently exclude all of those subdirectories
by x J:\NODE0
to create all four cslist*.* files,
including specified drive(s) (a: - z:)
and files with specified extension(s)
and/or strings.
To use one of these two .BAT programs, first make the \cs
subdirectory your current (default) directory. Then call the
program.
For on_line help, just type the name of either of these two
programs, then /* , and then press <enter>.
Revising the four CSLIST*.* files
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In looking at duplicates, you may have noticed that an ongoing
series of programs from the same author often includes material
which has not changed from one release to the next. After the
author has issued a better version of a program, you may choose to
remove the old one from your system. But, you don't want to lose
the ability to recognize the old material if it arrives in a
different guise.
There are two .BAT programs included in FWKCS200.ZIP, which
provide for revising the four CSLIST*.* files. You can choose one
which matches your initial set_up, or make a change at this time.
REVCSL.BAT to revise all four cslist*.* files,
on a system with non_overlapping paths,
searching drives c: - z:,
including only zipfiles with .Z*
extension(s),
OR
including only zipfiles with any or no
extension(s), self_extracting or not,
OR
including all non_directory files (this
can include hidden and system files),
AND preserving unique prior contents_signatures,
deleting obsolete d:\path specifications.
S_REVCSL.BAT to revise all four cslist*.* files,
including specified drive(s) (a: - z:)
and files with specified extension(s)
or strings (can specify inclusion /
exclusion),
optionally including only zipfiles, any
or no extension, self_extracting or not,
preserving unique prior contents_signatures,
deleting obsolete d:\path specifications.
Note: Under some circumstances, you may
find it easier to specify a set of
file extension(s) or other search
string(s) which results in some
d:\path\filename.ext's being
included more than once.
If each file is reached by only one
path (that is, there is not any
case where the same physical file
is reached via 2 paths),
then, in S_REVCSL, FWKCS deletes
the extra references.
For on_line help, just type the name of either of these two
programs, then /* , and then press <enter>.
>>--> To use these programs, you must be in your \cs subdirectory.
Except as noted, each of these two programs
consolidates CSLIST1.SRT into CSLIST.SRT,
searches the system to make a worklist of files to include.
Note: S_REVCSL performs the additional step of deleting any
redundant, exactly duplicate, full lines of
d:\path\filename.ext from the worklist. (This can
simplify the design of the search, as noted above.)
searches the system to build a new CSLIST,
searches the prior CSLIST for any contents_signature(s) which
do not belong to files currently found on the system,
merges those unique contents_signatures into the new
CSLIST.SRT,
indexes the resulting new, combined CSLIST.SRT,
protects the new CSLIST.NDX and CSLIST.SRT,
restarts the quick_update files CSLIST1.SRT and CSLIST1.NDX.
The prior material is saved without the d:\path pointing to where
the file was once found, because that would probably not be
correct. Because the ":" is missing from those lines which were
carried forward in this way, you can collect those lines (and
omit the x_flagged lines without ":") by using the FWKCS
text_find:
FWKCS /t30a7.8v":" < cslist.srt | FWKCS /t30a7.8v"x" > cs_prior.srt <enter>
This information is also available to a user, via Lookup.
(See LOOKUP.DOC)
Customizing the messages sent from FWKCS to BBS users
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Note to Sysops:
FWKCS accepts message material which you prepare in advance.
You can use this to create messages in which you can control
graphics, use personal names via the PCBoard @codes, select
messages of your own, and/or send information provided by
FWKCS in a framework of your own design.
Thought has gone into keeping key parts of the FWKCS
messages short, partly out of respect for people's time and
the fact that people may be calling long distance.
However, over the years, you may have devoted part of your
efforts to creating a special, personal environment which
you and the users of your board now find pleasant,
comfortable, and productive. And, you may have specific
instructions, etc., to add, in order to help people use your
board. For at least these reasons, you may wish to
customize and personalize the messages.
If this interests you, see FWKCS200.REF, "Customizing
messages to users:", under auxiliary function /a5, option h.
A program is included, MSGS.BAT, which makes dummy files for
all the messages which you can provide. Each of the files
contains its name. To see which files to put your material
in, upload a file locally and look at the "message" which
would be sent to the user (e.g., under PCBoard, PCBPASS.TXT
or PCBFAIL.TXT). That "message" will tell you the names of
the files to use for that case. You can then remove from
each such file the line which says which file it is, and put
in your message (including graphics, PCBoard @codes, etc.).
A Local Upload Test program is included, LUT.BAT, which you
can use for locally viewing your messages. The messages
prepared for local use by FWKCS under option x0 do not
contain @codes generated under PCBTEST by FWKCS for PCBoard
use, but will contain any which you have provided in any
parts used in making the final output.
When you are installing FWKCS, if you run the automatic
installation procedures (which run CSAMACS to set up the
\CSA Contents_Signature Activity place), or if you run
CSAMACS directly to set up \CSA, you will find a copy of
MSGS.BAT in the subdirectory \CSA\MSG, where your message
material goes.
Before you customize any of the messages, you can run FWKCTEST,
and see on the screen many kinds of messages to users which FWKCS
can produce. During the run of FWKCTEST, these messages are also
collected in UPLOADS.RPT. Each message in UPLOADS.RPT also
contains special notations as to where customizing material of
yours would appear. These cases are explained under Auxiliary
Function 5, option h.
In designing your messages, please bear in mind that there
are people who are blind, and who use relatively simple
computer reading software which may not respond well to
graphics. They are welcome and productive members of our
computer networks. They, and others, may choose an OFF
setting for the graphics mode (e.g., on PCBoard).
Generic interface for use with various bulletin board systems
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
BBSTART.BAT contains notes to help you revise it to fit
various bulletin board systems. It sets up the environment
for one node, calls the BBS program, reloads the BBS program
in the event that it exited with errorlevel 1 or greater, else
cleans up that node's environment before ending.
SCANFILE.BAT contains notes for editing it, including how to
change it for use in a client/host configuration (changes in
two lines provided; rem one out, and remove the rem from the
left end of the other). Scanfile accepts a single command_
line input, which provides the d:\path\filename.ext of the
file to be tested.
For detailed information, see the two programs themselves.
These two programs, together, can be edited in simple ways to
let a wide variety of bulletin board systems use all three
FWKCS configurations for testing uploads: direct testing,
split testing, and client/host configuration.
As shipped, the two programs are configured for using FWKCS
with Mustang Software, Inc.,'s Wildcat.
----------------------------------------------------------------------------
[ ] 16. If you are running a bulletin board system, check the following
new programs as appropriate (any prior copies there of these
programs will have been renamed *.OLD), and make any changes
needed:
[ ] If you are running PCBoard, see the new PCBTEST.BAT.
[ ] If you are running a different bulletin board system, see
BBSTART.BAT and SCANFILE.BAT.
[ ] 17. If you wish to add a contents_signature line to the text file
description of uploaded files, type ADD_G /* <enter> for
instructions. This signature can be used by other systems
running FWKCS to avoid downloading duplicate files or packages
from your board, even though the name may be different.
[ ] 18. FWKCS provides for the use of prespecified paths for rapidly
reaching the executable files PKZIP, PKUNZIP, LIST, and SCAN.
If you wish to tell FWKCS which specific drive:\path\ to use
for each, here are two ways to do it:
[ ] Indirect method: use GET_DFLT.BAT. This is the preferred
method for making changes. For
instructions, type GET_DFLT /* <enter>.
You may wish to copy the modified copy of
FWKCS.EXE also to your \CS directory.
Remember to do ATTRIB -r \CS\FWKCS.EXE
before you overwrite it, and
ATTRIB +r \CS\FWKCS.EXE afterward to
protect it.
[ ] Direct method (press the "enter" key after each command
line); working in your \CSA directory:
attrib fwkcs.exe -r
copy fwkcs.exe *.old
fwkcs /d
That last command brings up a screen displaying a set of
internally stored commands. (The d:\path\filename for the
copy of FWKCS which you are changing is displayed near
the bottom of the screen. This helps avoid changing the
wrong copy of the program, especially on a network.) The
lines you want to change are 5, 6, 7, and 8. To do this,
type in each of the following command lines, putting in
the correct drive letter and path in place of the
"d:\path\" for each program, respectively, and end each
command line by pressing the ENTER key:
fwkcs d:\path\pkzip.exe /d5
fwkcs d:\path\pkunzip.exe /d6
fwkcs d:\path\list.com /d7
fwkcs d:\path\scan.exe /d8
fwkcs /d
That last command brings up the display again. Look at
lines numbered 5, 6, 7, and 8 (each line is labeled at
the left edge of the display), and check the entry which
appears on the right side of the "=" sign. If there is an
error, you can set that entry again (the instructions
also appear near the bottom of the screen). To reset the
entry on the right side of the "=" the same as it appears
on the left side, use FWKCS /dN <enter> , where N is that
line's single digit at the left edge of the display.
When you have those four entries the way you want them,
do
attrib fwkcs.exe +r
del fwkcs.old
(Screen /d also shows "macros" A-I. There is also a /d!
screen, with macros J-Z. All of this is explained in the
main reference, FWKCS200.REF, discussed in step 22,
below. When you get there, look up "Format 3", "d and d!",
and "macros", under "The FWKCS command_line" in the Table
of Contents.)
You can copy this modified copy of FWKCS.EXE to use in
your \CS directory, as described under "Indirect method",
above.
[ ] 19. To make the .BAT, .COM, and .EXE programs in the \CSA directory
generally available on your system, put drive:\CSA on your
path, replacing "drive" with the letter for the drive the \CSA
directory is on. But first do a directory listing for *.bat,
*.com, and *.exe, and see if you may need to change the names
of programs elsewhere on your system. For unambiguous
execution, it is usually better to put drive:\CSA at the
beginning of your PATH.
Note: for safety, do not put the \CS directory on your path,
just the \CSA. The \CS directory contains the data base,
and contains powerful system maintenance programs,
including the ability to revise and rebuild the data
base while the system is up and running and handling
traffic. (that's done using REVCSL and S_REVCSL, which
appear as examples in step 22, below)
[ ] 20. If this is the first time you have installed FWKCS, and you built
a contents_signature data base (e.g., you did not use QIKSTART),
then
to remove duplicate files,
change to your \CS directory,
find the README.TXT section in step 15, above, called
"Removing duplicate zipfiles and plain_files"
read carefully all the way through that section, and
follow the instructions given there.
[ ] 21. Go to your \CS directory and run CHKDSK CSLIST*.* , to see if the
files are contiguous. If they are fragmented into non_contiguous
parts, and if your operating system permits defragmentation, then
run a suitable defragmentation program, e.g., Norton's Speed Disk
or equivalent.
[ ] 22. Extensive on_line help is available in these ways; try each of
them out so that you know how to get help later:
[ ] go to the \CSA directory, and type CSAM <enter>. Press D to
go to the main directory, and explore what it offers.
[ ] go to the \CS directory, type CSM <enter>, and explore what
it offers.
CSAM and CSM are convenient as reminders of some of the
programs available, and what they do. You can call programs
directly for help (CSAM and CSM were doing that):
[ ] Except for PCBTEST.BAT, every .BAT, .COM, and .EXE program
automatically installed in setting up the FWKCS system can be
asked for direct help, by typing the program's NAME /* <enter>.
This puts the help right on the screen, usually with a "Usage"
example you can use as a guide while you type in your input.
For example, in the \CSA Contents_Signature Activity place,
being careful to use the /* , see:
[ ] GET /* <enter> find other copies of a file
[ ] Y /* <enter> find copies, accession if any new
[ ] MSG\MSGS /* <enter> to customize messages to users
[ ] DO_HOSTQ /* <enter> run as host, do work on queue
[ ] DO_BLOG /* <enter> do backlog in split_test mode
[ ] DOZIZ0 /* <enter> process zip in zip from \CSA\ZIZ
[ ] SPLITEST /* <enter> configure for split test
[ ] LOOKUP /* <enter> for remote lookup
[ ] RCROSREF /* <enter> to get remote cross_references
[ ] BANAV /* <enter> ban a specific AV stamp
[ ] LISTAV /* <enter> enter a specific AV as OK
[ ] TESTAV /* <enter> test status of an AV stamp
[ ] WIPE /* <enter> designate a file for automatic
removal when not protected by AV
[ ] EXCLUDE /* <enter> to block commercial files, etc.
[ ] BBSTART /* <enter> part of generic BBS interface
[ ] SCANFILE /* <enter> file tester, generic BBS
[ ] LUT /* <enter> local upload test
[ ] FWKHI /* <enter> hexadecimal etc. input for .BATs
[ ] FWKDG200 /* <enter> to make DIRGUIDE.TXT
[ ] FWKDG /* <enter> file collection, time logging, etc
[ ] FWKFT /* <enter> to copy from near tail of big file
[ ] FWKQA /* <enter> to quickly append short file to
long file
[ ] CRLF0 /* <enter> to format text_block files, e.g.,
for sorting giant files.
[ ] FWKCS /* <enter> brings up a list of commands for
specific help. Try out each one now, or come back to
them later. (/** is discussed below.)
[ ] FWKCSC /* <enter> brings up a list of commands for
specific help re operation as a client under FWKCS.
etc;
under the \CSA is the \CSA\P Process area; do cd p <enter>,
and then see
[ ] DOEM /* <enter> annotated template for batch local
uploading
[ ] ZIZDOEM /* <enter> annotated template for batch local
uploading of zip in zip from
\CSA\ZIZ
[ ] DOZIZ3 /* <enter> annotated template for revising
file descriptions
and, in the \CS directory, see:
[ ] REVCSL /* <enter> rebuild data base, few options
[ ] S_REVCSL /* <enter> rebuild data base, many options
[ ] FLAG_REV /* <enter> revise the eXclude and Wipe flags
[ ] XCLEANUP /* <enter> clean out files based on matching
x_flagged contents_signatures
[ ] CSFILKIT /* <enter> used in finding duplicate files
[ ] FWKDG /* <enter> used in system file collection etc
[ ] REMOVADS /* <enter> removing ads from file collection
[ ] DSA /* <enter> directory spacing adjust
[ ] FWKCST /* <enter> contents_signature test
[ ] FWKCSS /* <enter> contents_signature spectrum
[ ] SPECTRUM /* <enter> calculate approx. system errorload
etc.
Note: XCLEANUP and FLAG_REV can be used with anti-
piracy resource material to help you protect your
system from becoming involved in software piracy
(see "Note 2:" near end of this file for where to
get that resource material).
[ ] FWKCS /** <enter> calls LIST to display FWKCS200.REF, the main
reference file, which has a detailed Table of Contents (after
the Preface). If necessary, FWKCS searches your PATH for both
LIST and FWKCS200.REF. If \CSA is not on your path, call this
while in your \CSA directory. (If FWKCS doesn't find LIST, it
presents material sequentially, which is not convenient with a
file that big.)
When you find an item in the Table of Contents, you can have
LIST search for "page n", where n is the 1, 2, or 3 digit page
number, and then use the up and down arrows etc. to move
around in that part of the file. LIST lets you copy parts of
the file to your printer or to another file. If you wish, you
can copy all of FWKCS200.REF to your printer for your own use,
but using it on_line is often more convenient (with a
multitasking system, you can open another thread and window,
and have the reference material on the screen while you work
in another window).
[ ] 23. This step explains adding a "node ID" for each processor or
multitask thread (window). If your system has only a single
CPU, with no multitasking and no automatic procedures that
would call FWKCS (such as running a bulletin board system),
this step is optional (but may be interesting).
Different network and multitask systems treat temporary files
in different ways. Some operate better when temporary files
are given the same names again and again. For this reason,
except in special situations, conflict is preferably avoided
by using each node's identification as part of that node's set
of names for temporary files. The FWKCS system looks for the
environment variable FWKNODE=ccc, where "ccc" can be any three
DOS filename characters; this variable should be set in each
node's environment, using SET FWKNODE=ccc with a different
set of characters, respectively, for each node (if running
under Novell, Inc.'s network system, use their syntax instead
of this). This node ID is case insensitive; e.g., aBc is
treated as the same as ABC.
Reusing the same set of names for temporary files also helps
in automatically cleaning up after an interruption, because
the files are routinely deleted after their next use.
Clark Development Company's PCBoard passes along its node ID
when it shells to call other programs, and FWKCS can read that
ID from the environment. For use with Mustang Software, Inc.'s
Wildcat, set the node ID in BBSTART.BAT, and use SCANFILE.BAT,
both of which are normally installed in the \CSA directory.
BBSTART.BAT and SCANFILE.BAT are designed as templates for
more general interfacing of FWKCS with other bulletin board
systems, and may be edited as needed for that purpose; their
default settings are for use with Wildcat.
[ ] 24. If you are running a bulletin board system, upload some files to
your board to test your setup.
[ ] Change the name of one and upload it again.
[ ] Take files from different zipfiles already uploaded,
rename them, make a zipfile out of the renamed files,
and upload the combination zipfile.
[ ] Use LIST to look at \CSA\FWKUPLD.LOG.
[ ] Do FWKCS /**, search for "upload log, format and contents",
(it appears first in the Table of Contents, then in a
forward reference, and then where it is used as a header,
followed by several pages of detailed description).
Later, do step 31, and use LIST to look at the FWKUPLD.LOG
created there, and at the UPLOADS.RPT file, and to look in the
subdirectories, etc. Some of those cases might not turn up on
your board. Note that different settings, changed during the
test run, result in successive files being treated in
different ways.
[ ] 25. Local bulk uploading of files: FWKLOCAL.BAS, installed in the
\CSA directory, is used for this. It may be more convenient to
copy it to a separate workarea, for ease in keeping track,
cleaning up, etc. For details, see FWKCS /**, and search for
"4. L" to find "4. Locally processing batches of files as
uploads", first in Table of Contents, next as a header,
followed by detailed instructions.
[ ] 26. System maintenance: some of this you can set up now, and some of
this is for future use. This is for bulletin board use, and
for similar or related automatic operations.
[ ] SCAN has been getting bigger. If SCAN begins to require more
free memory than is available when FWKCS calls SCAN,
do FWKCS /d! <enter> ,
look at line X (as labeled at the left side of the screen),
If line X does not contain an entry #V; then go to your
\CSA directory and do
attrib fwkcs.exe -r
fwkcs [x]#v; /dx
attrib fwkcs.exe +r
fwkcs /d!
so that the #V; option entry appears near the end of
the list of options on line X. Option #V; tells
FWKCS.EXE to leave only 8128 bytes of itself in memory
when it calls SCAN. For additional information, see
FWKCS /** <enter> , and search for "Swapping most"
(without the quotation marks).
If you already have option #V; and do not have enough space
for SCAN, you may need to use an operating system which
provides more low memory in a DOS session
(for example, IBM OS/2 2.11 can provide more than
710,000 bytes of free low memory in a DOS session, if
you set the DOS session VIDEO_MODE_RESTRICTION to CGA
and use RMSIZE=640 in your CONFIG.SYS)
or run in the client/host configuration, with FWKCS in host
mode running the testing on a different machine or a
different thread which provides the needed RAM (including
possibly running it in a different DOS session under OS/2).
[ ] When FWKCS.EXE encounters a problem and reports an error, it
tries to write it to FWKCS.ERR in its current directory,
creating a new file if it does not find the file there. If a
copy of FWKCS.ERR exists in a directory which is APPENDed,
then FWKCS may be misled into thinking that that file is in its
current directory, and append its error message to that other
file. There can be benefits from being able to find where an
error actually took place. For this reason, don't leave an
FWKCS.ERR file in any directory on which APPEND is used. As a
safety precaution, you can create an empty FWKCS.ERR file in
the same directory where work is being done, by doing
rem > fwkcs.err <enter>
there. Then, that empty file would be found locally and the
error appended to it, rather than to one in a remote directory
on which APPEND was used. FWKCSC.COM behaves similarly,
writing its error reports to FWKCSC.ERR.
[ ] As part of system maintenance, occasionally run an automatic
search for FWKCS.ERR and FWKCSC.ERR, see what any non_zero_
length ones have in them, and do the necessary repairs and
clean_up (if they are deliberately there, reset them to zero
length, as above).
-----------------------
[ ] Normally keep CSLIST1.SRT below 50KB long, preferably less, so
as to keep the update process conveniently fast. There are two
options used for automatically consolidating CSLIST1.SRT into
the main data base, CSLIST.SRT. The older one is
FWKCS /t30v (reVise)
(The /t30 allows for 30 seconds network or "collision" delay.)
It has one advantage:
1. it does a merge_in_place, followed by indexing, etc. The
total amount of free space required depends mostly on the
length of CSLIST1.SRT, rounding the sum of CSLIST.SRT +
CSLIST1.SRT up to the file block size required to hold that
total on your system. For example, a 30K CSLIST1.SRT can
be merged into a 30 Meg CSLIST.SRT using only a free space
of about 30K.
It has two important disadvantages:
1. the system is tied up while this is going on;
2. a power interruption could result in a corrupted main data
base.
The /v option lends itself to use on a RAMdisk.
The more recent revise option (in use for more than a year), is
FWKCS /t120vc10000 (reVise Concurrent)
It has three advantages:
1. it can be done using one processor on a network, or one
thread on a multitasking system, while the system is up and
running and handling traffic;
2. if there is a power interruption, the main data base is not
damaged;
3. the decimal digits after the vc set the threshold: if
len(CSLIST1.SRT) is not bigger than that number, FWKCS
skips the operation and returns to the command line.
It has one disadvantage:
1. the amount of free space required is
len(CSLIST.SRT) + len(CSLIST.NDX) + 2*len(CSLIST1.SRT).
[ ] This is the preferred method used on large systems. For system
maintenance, it is recommended that you run this on a daily
basis:
rem any drive mappings go here
fwkcs /t120vc10000
If your system is multitasking or uses multiple processors on
a network, this can be done while the system is up, and is in
effect "transparent" to users. What they see is that the
system response in accessioning new files stays fast.
-----------------------
[ ] During normal operation of a bulletin board system, etc.,
some files are retired from use, and others are moved to
different locations on the system. Two maintenance procedures,
REVCSL.BAT and S_REVCSL.BAT, are provided for
rebuilding the data base,
correcting the d:\path\ statements for moved files still on
the system,
making sure that those present are included,
carrying forward all unique contents_signatures from files
retired from the system,
carrying forward all contents_signatures flags (the
exclusion flag, the handling of AV stamps, deletion of
ads, etc.),
when used on a multitasking system, or a network with
multiple processors, either of these two procedures can
be run while the system is up and running and handling
traffic, bringing the new, rebuilt data base on line in
a way which is in effect transparent to users.
It is recommended that you run one of those two programs
whenever you reorganize your system, or move or retire many
files; and routinely on approximately a monthly basis. To do
this, it is suggested that you prepare a .BAT program which
sets up whatever network configuration you normally use, and
calls REVCSL or S_REVCSL. If you installed FWKCS by using
option 4 on the Menu for Installation, then you may find
REVCSL sufficient for your needs. If you used option 5, or if
your system has become more complex, S_REVCSL may better serve
your needs. Because of the time interval between running that
special .BAT program, it is suggested that you check it each
time before you use it, and make any changes needed.
[ ] A general form for that .BAT program is
rem any drive mappings go here
rem then change to whatever drive holds \CS
d:
cd \cs
attrib -r sysmaint.log
echo --------------------------------------- >> sysmaint.log
fwkdg /w1 >> sysmaint.log
echo starting data base revision >> sysmaint.log
rem the example used here is REVCSL;
rem you could use S_REVCSL with its detailed command line.
call revcsl 1
fwkdg /w1 >> sysmaint.log
echo finished data base revision >> sysmaint.log
attrib +r sysmaint.log
Notes:
If essentially all the files on your system which
you are going to include in the revised data
base are already included in the current data
base (e.g., they were routinely added since
your first installation or last system
revision), and the total length of your
CSLIST.SRT and CSLIST1.SRT together is more
than 100 KB, then allow an amount of free
workspace of at least
4*len(CSLIST.SRT) + 4*len(CSLIST1.SRT)
located on the same drive that holds your \CS
directory. The revised CSLIST.SRT typically
takes up no more space than the prior
CSLIST.SRT and CSLIST1.SRT together. It is
often smaller than before, for these reasons:
all unique contents_signatures of retired
files are carried forward, but their d:\path
information is dropped as obsolete;
there are some files which often appear in
multiple copies, because they are packaged
with executable code to support operation;
those files which were present in the retired
packages and are currently present elsewhere
on the system are not unique, so the entries
corresponding to their presence in the
retired packages are dropped;
the contents_signature for each file which
appeared in multiple copies in the different
retired packages, and is not currently
present on the system, is carried forward as
only one entry (without d:\path) in the
revised CSLIST.SRT.
SYSMAINT.LOG is a dated system maintenance log
automatically created and updated in your \CS
directory.
FWKDG /w1 provides a date/time_stamp at the
beginning of a line, without a carriage return,
in the same format used in FWKUPLD.LOG; if you
need to track down a system problem, you can
make a merged file and sort it by date and
time. The echo statement in the next line has
two blank spaces after the "echo", to provide a
blank space after the date/time stamp; it
continues and completes the line, and provides
the carriage_return and line_feed.
S_REVCSL is used on giant boards; if necessary, it
can be modified to call an external .BAT for
even more detailed file selection criteria.
On large systems, normal FWKCS maintenance does not require
any system down time!
-----------------------
[ ] In the \CS directory, CSLIST.SRT and CSLIST1.SRT provide an
easy indication of size and growth of the data base. After you
consolidate CSLIST1.SRT into CSLIST.SRT, there are some more
detailed types of data you can extract. If you run a BBS,
various of these numbers may also be of interest to your
board's users or potential users. Here are some examples:
[ ] If your system uses zipfiles, you can count the number of
zipfiles currently on your system by running, in the \CS
directory, this single command line:
fwkcs cslist.srt /t30a7.8f"z" | fwkcs /t30a7.8c":" zc
The resulting output file ZC receives the zipfile count.
[ ] If your system uses zipfiles, you can count the number of
unique files directly contained in the zipfiles currently
on the system, by running this .BAT program:
fwkcs cslist.srt /t30a7.8v"cs" | fwkcs /t30a7.8f":" $t1
fwkcs $t1 nul $t2 /t30mp
del $t1
fwkcs $t2 /t30a7.8c":" fc
del $t2
Output file FC receives the unique_files_directly_in_
zipfiles filecount. (This count of unique files is based
on the contents_signature statistical resolution, with
typical pairwise statistical error rate of less than one
part in ten trillion. For detailed discussion of the cs,
see FWKCS /** , search for " Intro" and "x 4. D" .)
[ ] If your system also uses non_zip files (here called
"plain files"), you can count the number of such files
currently on your system by running, in the \CS directory,
this command line:
fwkcs cslist.srt /t30a7.8f"f" | fwkcs /t30a7.8c":" pc
Output file PC receives the "plain file" count.
[ ] For an approximate analysis of statistical error load of
the entire data base, in your \CS directory, first do
SPECTRUM /* <enter> to see what it's objectives are,
then do SPECTRUM <enter> and press the space bar to
continue.
The results are summarized on the screen display when
SPECTRUM finishes running, and later you can use LIST to
read the results from the files listed on the /* help
screen.
A convenient way to use LIST for this is to type
LIST <enter> , then press 1, S, D, Ctrl_End.
Absent intervention (see indented () explanation, below),
that displays the files as a single_column_list in order
of when they were closed after last being written to, and
positions your cursor at the bottom of the list. Absent
special circumstances, the files you just made then appear
in sequence at the bottom of the list. (E.g., if a file is
accessioned on a network or multitask system while
SPECTRUM is running, CSLIST1.SRT and CSLIST1.NDX could be
down among them).
(There are programs which can alter the date and
time recorded for a file, so as to show values other
than when the file was closed after last being
written to. For example, during the production run,
all the files in this release of FWKCS were given a
specific date and time; those which were processed
further during or after installation usually show
different date and time.)
-----------------------
[ ] The \CSA directory provides a single place to routinely check
for what's going on:
FWKULPD.LOG for upload activity, record of disposal of files
FWKCNTRL.ERR for FWKCS.EXE error reports
CLIENT.ERR for FWKCSC.COM error reports
TELSYSOP warning of an apparent virus found
Notes: If you see an FWKCNTRL.ERR, it means that there
likely is also an FWKCS.ERR file, hopefully
created at the location where the error took
place.
Similarly, if you see a CLIENT.ERR, it means
that there likely is also an FWKCSC.ERR file
somewhere, to track down.
(see discussion re FWKCS.ERR and
FWKCSC.ERR near top of this step 26).
If you see a TELSYSOP, look also in
\CSA\POTVIRUS for a copy of the file.
\CSA contains the \CSA\P general purpose Process area. For
example, batch programs running in \CSA\P can make special
copies of FWKCS.EXE to carry out specific tasks. You can
use the P directory under \CSA for locally processing "batch
uploads".
\CSA contains target directories for rejected files, for
convenience if further processing is desired:
ADINZIZ an ad was found inside an inner zipfile, inside a
zip in zip zipfile (rejected via DOZIZ0.BAT)
BAV banned or bad AV stamp (a file's AV stamp can be
specified as banned using BANAV)
ENC contained apparently encrypted material when not
allowed
FZT failed zipfile test
MAV missing AV, when AVs are required
OLD older than the age test is set for
POTVIRUS potentially a virus
QSN question as to sufficient novelty (settable)
RSN contained a file with a reserved system name
TRASHOLD duplicate or redundant files (nothing new in them,
but preserved in case a necessary part of an
acceptable set of interrelated files)
UAV unknown AV, when only pre_approved AVs accepted
(AVs can be entered as OK using LISTAV)
UNC unchecked: client did not receive reply from host
UNCLEAR ambiguity arose in further disposing of a zip in
zip zipfile from ZIZ (rejected via DOZIZ0.BAT)
ZIZ zipfile contained another zipfile
ZIZPATH a zip in zip zipfile contained a zipped path in
the outermost zipfile (rejected via DOZIZ0.BAT)
ZXL zipfile would have been larger then allowed if
unzipped ("zip bomb") (allowed size is settable)
ZIZIZ zipfile in ZIZ contained another zipfile which
contained another zipfile (rejected via
DOZIZ0.BAT)
Notes:
RSN: zipfiles in there are probably trojans. Look at
them with LIST or DEBUG, if you want, but if
you're going to unzip them, it is suggested
that you do it on an isolated machine with
nothing important on it, which you can
conveniently reboot.
UNC: look there if you see a CLIENT.ERR file; once
everything is running, this kind of failure
may indicate a network or hardware problem. If
the client, FWKCSC, was able to reach the \CSA
to make that report in CLIENT.ERR, there's a
good chance it was also able to save the file
in UNC for possible processing (e.g., SYSOP
intervention) later.
ZIZ: At this time, when automatically processing
uploaded files, FWKCS sets aside any zipfile in
which it finds another zipfile structure, for
possible inspection by the system operator or
for possible (batch) processing using
DOZIZ0.BAT or ZIZDOEM.BAT. Those "zip in zip"
zipfiles are put into the \CSA\ZIZ directory.
A .BAT program is provided, DOZIZ0.BAT, which
can be run while in the \CSA directory, to
automatically process zip in zip zipfiles found
in \CSA\ZIZ. It puts the accepted ones in
\CSA\ACCEPTED. (See DOZIZ0 /* <enter> .)
For each "zip in zip" zipfile processed
using DOZIZ0, the first zipfile (the outer
one) must not have any zipped paths, but can
contain up to 16,383 zipfiles.
Each of the inner zipfiles can contain a
full DOS tree of subdirectories (up to 32
levels of subdirectories) with up to 16,383
files and subdirectories, but must not
contain any further level of zipfile
(including self extracting zipfiles).
AV stamps are preserved and processed.
Zipfiles rejected via DOZIZ0 can go to
various target directories listed above;
these are DOZIZ0's special target
directories for rejects (described above):
\CSA\ADINZIZ
\CSA\UNCLEAR
\CSA\ZIZIZ
\CSA\ZIZPATH
See DOZIZ0 /* <enter>
A template is provided, ZIZDOEM.BAT, for
configuring your system, calling DOZIZ0 to
process zip in zip rejects, preparing file
descriptions in PCBoard text file format
(including using internal upload description
FILE_ID.DIZ, DESC.SDI, or VENDINFO.DIZ), and
other functions. ZIZDOEM.BAT is run from a
separate process area, not from in \CSA nor
from in \CS. (default is \CSA\P )
See \CSA\P\ZIZDOEM /* <enter>
Why are zipfiles which contain other zipfiles set
aside during automatic processing? Here is part of
the reason why:
DOS supports a sophisticated tree structure of
subdirectories. Phil Katz wrote PKZIP so that
it can capture a full DOS tree of files and
subdirectories into a single zipfile, with a
few keystrokes, and that whole structure can be
recreated at the receiver's end simply by using
the PKUNZIP -d option. For commercial and
business applications, scientific work, and
computer work, this is much more practical than
putting one zipfile inside another.
FWKCS is designed to efficiently and accurately
support that capability Phil provided --
quickly process a zipfile containing a full DOS
tree of files and subdirectories, while
preserving the structure of the zipfile and the
integrity of the zipfile's Authenticity
Verification stamp. That includes the ability
to generate the contents_signatures of all the
files in a zipfile with over 16,000 entries,
containing a DOS tree made of many directories
and files, stacked up to 32 subdirectories deep
(a limit imposed by DOS before the zipfile was
made), on the fly. Also, FWKCS controls the
processing of uploaded files for virus testing,
so that (default setting) files with different
zipped paths but the same names do not
overwrite one another. (There is an option
which allows files with the same name and the
same contents_signature to overwrite one
another.)
Let me note that I am not a lawyer, and that
what I say here is not offered as "legal
advice". Having said that, let me continue
with some remarks on the history of treatment
of zipfiles on bulletin boards, and zip in zip:
Regrettably, in the early use of zipfiles on
bulletin board systems, people took a shortcut:
To virus test the files, they automatically
unzipped all the files into a single
subdirectory, writing one file on top of
another if they had the same name, and using
PKUNZIP's -o (automatic overwrite) option to
avoid having their systems "hang". Then, they
used a virus testing program to test the files
which were present in the subdirectory. But,
because of the possibility of one file
automatically overwriting another with the
same name, the fact that all the files in the
subdirectory passed the virus test did not mean
that all the files in the zipfile were OK. So,
they did what they euphemistically called
"rezipping": they deleted the original zipfile,
and made a new zipfile containing only the
files which were left in the subdirectory.
That always destroyed any path information
contained in the original zipfile, possibly
lost some files, and always destroyed any
author's Authenticity Verification stamp which
might have been there -- which AV stamp, if
originally present, was possibly the best
protection the end user would have had.
Of course, this impaired the operation of any
program which depended on finding files at
their expected locations in that (missing)
directory tree after the package was opened.
And, it substantially impaired the end user's
ability to rely on the data. The authors and
owners of that material had not authorized
those people to make such changes in it,
damaging the operation of their programs, and
had not authorized those people to pass such
altered material on to others as if it were the
authors's work.
Moreover, in "rezipping", they would appear to
have been creating a "derivative work" without
the author's permission, in violation of the
author's copyright.
So, an author would try putting material inside
a zipfile, and then zipping that, in hopes that
the inner material would reach the end user
unscathed. Other instances of zip in zip arose
from people putting other people's zipped work
into an additional outer package, thus
ostensibly "creating" a "new work". Other cases
arose in which people took the contents of a
floppy disk, which included a zipfile and an
installation program, and packaged them
together into yet another outer layer of
zipfile -- in this instance, with a little
thought, they might have served their purpose
by putting the installation program into the
existing zipfile (or asking the author to do
so, if the zipfile carried an AV stamp), with
instructions on how to unzip that installation
program first and then use it.
While this was going on, others were delightedly
discovering how easy it was to turn the zip in
zip structure into trojans, etc -- procedures
which I will not discuss further here.
Meanwhile, the UK enacted a Computer Misuse
Act, under which unauthorized alteration of
material on a computer which impairs the
operation of a program or the reliability of
the data would appear possibly a prosecutable
offense, potentially carrying a fine and up to
five years in jail.
This author is not aware of any current
software for reliably and completely processing
the full structure of a zipfile, with a full
DOS tree and Authenticity Verification, in real
time, and at the same time reliably and
completely processing a multi_nested zip in zip
in zip... structure, each nested zipfile
potentially carrying a multiplicity of zipfiles
each of which may itself contain a full DOS
tree, etc -- while carrying out the objective
of protecting the integrity of the original
package and the author's AV stamp. Although
code could be written to process such zip in
zip in zip... structures on a case by case
basis, this author is not aware of any
mechanism for rapidly scanning them on a
system.
There is a real concern that the community
would be better served by a wider recognition
of the rights of authors and end users to have
Authenticity Verified Zipfiles pass through the
bulletin boards with their contents in pristine
condition -- at which time, authors and end
users could safely employ the far better zipped
path system Phil Katz provided.
[ ] 27. The FWKCS system has many files and several subdirectories. If
you need to completely remove the FWKCS system from your hard
drive(s), this can be done by running DELCSA D in your \CSA
directory and DELCS D in your \CS directory, where D is the
drive letter for the drive holding that directory,
respectively.
[ ] 28. For direct help on using remote Lookup and remote
cross_references, type
[ ] LOOKUP /* <enter>
[ ] RCROSREF /* <enter>.
[ ] 29. Different levels of technical support are available to registered
users. For more information about support, see "Support" in
REGISTER.DOC; and type FWKCS /! <enter>, and press the space bar
until you reach the screen about support.
[ ] 30. Print out REGISTER.FRM, and follow its instructions for
registering FWKCS.
Until you have registered FWKCS, keep a copy of REGISTER.FRM in
the same directory with FWKCS.EXE.
Using the registered version saves time, in two ways: the
registered version does not spend any time on verifying
REGISTER.FRM; for an unregistered copy, the first evaluation
day is counted as day 0 -- after day 30, a delay is added of 1
second for each additional day.
This software is not free -- if you do not register it, you should
discontinue using it.
Be patient, Have fun, Register, and If you need help, please ask.
For programmers, bulletin board operators, sophisticated
users, and people who like to see a lot of action:
[ ] 31. Two extensive quality_control testing programs,
used before FWKCS(TM) is released, are
installed in \CSA. Among other things, they
test a series of ways in which a file uploaded
to a bulletin board system can be handled.
To run one of these programs, make \CSA your
current directory, do MD 1 to make an empty
subdirectory 1 under \CSA, do CD 1 to make
the new directory your current directory, and
run the program there. To clean up afterward,
run FWKCLEAR in the same directory. The
special needs of these programs are explained
when you start, or you can use the /* help
command with each of them.
[ ] FWKCTEST can run on a single processor, in DOS.
[ ] FWKCHTST requires a multitasking or
multiprocessor (network) system. It sets up
and runs the client/host configuration, using
two DOS sessions.
------------------------------------------------------------------------------
Distribution:
~~~~~~~~~~~~~
Provided that no fee is charged for the use, copying, or distribution; and
provided that they are not modified in any way; then you may freely
distribute unregistered copies of FWKCS(TM), solely in its original
Authenticity Verification Zipfile named FWKCS200.ZIP with AV code =
"# OFT466 Frederick W. Kantor (founder/information mechanics)" .
If you upload this material to a bulletin board system which does not
automatically insert the FILE_ID.DIZ description, please provide that
material in your upload description.
And, please do not remove Dr. Kantor's Authenticity Verification stamp from
the FWKCS200.ZIP zipfile. If the AV stamp was removed before you received
the zipfile, or if you have accidentally removed the AV, get a good copy to
distribute of the current release of FWKCS, as a no_fee download, from the
phone number listed in Note 2, below.
-----------------------------------------------------------------------------
Note 2:
~~~~~~~
To get the current release of anti-piracy resource material FWKCXnnn.ZIP, or
if you are missing any of the shareware programs in checklist items 1-3
above, they are available as no_fee downloads from The Invention Factory BBS
on your first call, from a 48_line hunt_up group of USR Dual Standard modems,
at 2400-16800 bits/sec (including V32.bis):
telephone 212-274-8110 8N1
telnet 199.183.47.133
Remember to properly compensate the shareware authors whose product(s)
you use.
Note 3:
~~~~~~~
The remote lookup functions are available in a relatively small kit,
FWKLU200.ZIP, released 1995 Jan 16. If you run a BBS, you may wish to get
the FWKLU200.ZIP kit for your users, especially if you have active,
thoughtful uploaders, or if your BBS is a "feeder BBS" and many of your users
are other BBS's. The kit comes with instructions, and contains a short
bulletin, FWKLU200.BLT, suitable for posting. (see phone number in Note 2,
above)
----------------------------------------------------------------------------
IBM and OS/2 are trademarks of International Business Machines Corporation.